SPU Inside#
SPU is a virtual device backed by an MPC engine, which provides an arithmetic black box abstraction to front-end users. Just like other black boxes, it’s not easy to understand what happened inside it.
For this reason, SPU provides some features to show what happened inside it, this document demonstrates these features.
Simulation#
As the name suggests, multi-party computation is born to be distributed system with multiple participants, which makes it harder to setup, debug and inspect. So SPU provides a simulation module that uses threads to simulate multi-parties in a single process. All parties acts exactly the same as in production environment, so we can use it as a playground to inspect the internals of SPU.
To use the simulation module, we can simple do
[1]:
import spu
import jax.numpy as jnp
import numpy as np
# import spu simulation module
import spu.utils.simulation as pps
Now we can create SPU simulator and run program on it.
[2]:
# create a simulator with ABY3 x Ring64 protocol.
protocol = spu.ProtocolKind.ABY3
field = spu.FieldType.FM64
simulator = pps.Simulator.simple(3, protocol, field)
# decorate a jnp function to a simulated function
spu_add = pps.sim_jax(simulator, jnp.add)
# now we can call spu_fn like normal jnp fn.
x = np.array([[1., 2.], [3., 4.]])
y = np.array([[5., 6.], [7., 8.]])
# the function is simulated on SPU VM, which use 3 threads to simulate different parties.
# the actual progress is exactly the same as real distributed version.
z = spu_add(x, y)
print(z)
No GPU/TPU found, falling back to CPU. (Set TF_CPP_MIN_LOG_LEVEL=0 and rerun for more info.)
[[ 6. 8.]
[10. 12.]]
In the above code. - First, we create an SPU simulator backed by ABY3 protocol with FM64 field. - Then we decorates a jax function jax.add
to make it a SPU simulated function. - Then we can use the simulated function just like normal python functions.
As the result suggests, it behaves like a python function, we can also print the compiled pphlo program with
[3]:
print(spu_add.pphlo)
module @xla_computation_add attributes {mhlo.cross_program_prefetches = [], mhlo.dynamic_parameter_bindings = [], mhlo.is_dynamic = false, mhlo.use_auto_spmd_partitioning = false} {
func.func @main(%arg0: tensor<2x2x!pphlo.sec<f32>>, %arg1: tensor<2x2x!pphlo.sec<f32>>) -> tensor<2x2x!pphlo.sec<f32>> {
%0 = "pphlo.add"(%arg0, %arg1) : (tensor<2x2x!pphlo.sec<f32>>, tensor<2x2x!pphlo.sec<f32>>) -> tensor<2x2x!pphlo.sec<f32>>
return %0 : tensor<2x2x!pphlo.sec<f32>>
}
}
The above code is a pphlo dialect in MLIR format, which defines a main
function that accepts two arguments and returns the sum as result.
Besides single jax.numpy
op, we can simulate any jax function on SPU, i.e.
[4]:
def sigmoid(x):
return 1 / (1 + jnp.exp(-x))
spu_sigmoid = pps.sim_jax(simulator, sigmoid)
spu_sigmoid(x)
print(spu_sigmoid.pphlo)
module @xla_computation_sigmoid attributes {mhlo.cross_program_prefetches = [], mhlo.dynamic_parameter_bindings = [], mhlo.is_dynamic = false, mhlo.use_auto_spmd_partitioning = false} {
func.func @main(%arg0: tensor<2x2x!pphlo.sec<f32>>) -> tensor<2x2x!pphlo.sec<f32>> {
%0 = "pphlo.constant"() {value = dense<1.000000e+00> : tensor<2x2xf32>} : () -> tensor<2x2x!pphlo.pub<f32>>
%1 = "pphlo.negate"(%arg0) : (tensor<2x2x!pphlo.sec<f32>>) -> tensor<2x2x!pphlo.sec<f32>>
%2 = "pphlo.exponential"(%1) : (tensor<2x2x!pphlo.sec<f32>>) -> tensor<2x2x!pphlo.sec<f32>>
%3 = "pphlo.add"(%2, %0) : (tensor<2x2x!pphlo.sec<f32>>, tensor<2x2x!pphlo.pub<f32>>) -> tensor<2x2x!pphlo.sec<f32>>
%4 = "pphlo.divide"(%0, %3) : (tensor<2x2x!pphlo.pub<f32>>, tensor<2x2x!pphlo.sec<f32>>) -> tensor<2x2x!pphlo.sec<f32>>
return %4 : tensor<2x2x!pphlo.sec<f32>>
}
}
The above code is spu function
which is composed of spu builtin ops.
Note: since spu use JIT compilation, so we have to execute the function before printing the compiled bytecode.
Profling#
Besides simple simulation, we can profile the simulated program, although the profiling result could NOT be used as a reference of SPU perf, it still gives some information of what happened.
To use profiling, we have enabled some feature flags.
[5]:
config = spu.RuntimeConfig(protocol=protocol, field=field)
config.enable_pphlo_profile = True
simulator = pps.Simulator(3, config)
enable_pphlo_profile
tells SPU runtime to print information about pphlo, now, let’s run the function on this new runtime.
[6]:
spu_sigmoid = pps.sim_jax(simulator, sigmoid)
z = spu_sigmoid(x)
[2023-02-25 08:28:41.147] [info] [api.cc:131] [Profiling] SPU execution sigmoid completed, input processing took 3.9e-07s, execution took 0.001579826s, output processing took 5.9e-07s, total time 0.001580806s.
[2023-02-25 08:28:41.147] [info] [api.cc:163] HLO profiling: total time 0.001053574
[2023-02-25 08:28:41.147] [info] [api.cc:166] - pphlo.add, executed 1 times, duration 4.35e-06s
[2023-02-25 08:28:41.147] [info] [api.cc:166] - pphlo.constant, executed 1 times, duration 1.0905e-05s
[2023-02-25 08:28:41.147] [info] [api.cc:166] - pphlo.divide, executed 1 times, duration 0.000771116s
[2023-02-25 08:28:41.147] [info] [api.cc:166] - pphlo.exponential, executed 1 times, duration 0.000243988s
[2023-02-25 08:28:41.147] [info] [api.cc:166] - pphlo.negate, executed 1 times, duration 2.3215e-05s
[2023-02-25 08:28:41.147] [info] [api.cc:175] Link details: total send bytes 3568, send actions 89
The above log tells the total execution time and the detailed statistics of each builtin function.
Besides the enable_pphlo_profile
feature flag, SPU has other flags like enable_hal_profile
to dump runtime information in different levels of instructions.
Tracing#
Profiling can only tell the statistics of SPU instructions, it’s still hard to understand what happened inside it. Tracing is a feature that used to print verbose call stack
, which helps to understand/inspect what exactly happened.
To enable tracing features, just set enable_action_trace
in the runtime config.
[7]:
config = spu.RuntimeConfig(protocol=protocol, field=field)
config.enable_action_trace = True
simulator = pps.Simulator(3, config)
Now, let’s run another function on this tracing enabled
simulator.
[8]:
spu_mul = pps.sim_jax(simulator, jnp.multiply)
z = spu_mul(x, y)
[2023-02-25 08:28:45.293] [TR] [B] hlo.pphlo.multiply()
[2023-02-25 08:28:45.293] [TR] [B] hal.mul(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:28:45.293] [TR] [B] hal.f_mul(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:28:45.293] [TR] [B] hal._mul(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:28:45.293] [TR] [B] hal._mul_ss(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:28:45.293] [TR] [B] mpc.mul_ss(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:28:45.293] [TR] [B] mpc.mul_aa(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:28:45.293] [TR] [E] mpc.mul_aa(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:28:45.293] [TR] [E] mpc.mul_ss(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:28:45.293] [TR] [E] hal._mul_ss(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:28:45.293] [TR] [E] hal._mul(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:28:45.293] [TR] [B] hal._trunc(Value<2x2xS*,s=2,1>, 0)
[2023-02-25 08:28:45.293] [TR] [B] hal._trunc_s(Value<2x2xS*,s=2,1>, 18)
[2023-02-25 08:28:45.293] [TR] [B] mpc.trunc_s(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:28:45.293] [TR] [B] mpc.trunc_a(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:28:45.293] [TR] [E] mpc.trunc_a(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:28:45.293] [TR] [E] mpc.trunc_s(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:28:45.293] [TR] [E] hal._trunc_s(Value<2x2xS*,s=2,1>, 18)
[2023-02-25 08:28:45.293] [TR] [E] hal._trunc(Value<2x2xS*,s=2,1>, 0)
[2023-02-25 08:28:45.293] [TR] [E] hal.f_mul(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:28:45.293] [TR] [E] hal.mul(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:28:45.293] [TR] [E] hlo.pphlo.multiply()
At the first glance, the trace log is a bit of frustrating, so it worth a little while to explain it.
At the very begining, is the entry point of multiply
function.
Each line follows the format as below:
[timestamp] [TR] [B/E] module.op(value_type...)
For example, the second line [timestamp] [TR] [B] hal.mul(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
means: - this is a tracing log indicated by [TR]
- the function begins/ends [B/E]
- the module is hal
- the operator is mul
- the two args are both Value<2x2xSFXP,s=2,1>
Note, hlo
is short for High Level Operations
, hal
is short for Hardware Abstraction Layer
, mpc
is short for Multi-Party Computation
.
The Value<2x2xSFXP,s=2,1>
means it’s a Secret FiXed Pointed tensor with shape(2x2) and strides(2,1).
the runtime dispatches the function according parameters datatype (in this case fxp), then calls the corresponding fixed point handle function
hal.f_mul
, the prefixf_
means its for fixed point.the runtime dispatches
hal.f_mul
to the untyped versionhal._mul
which operates onrings
.the runtime dispatches
hal._mul
according to the visibility type, since both parameters are secret, sohal._mul_ss
is called, the postfix_ss
indicates that it operates on two secrets.
Then the function hal._mul_ss
is dispatched to the MPC layer, the signature becomes more complicated.
mpc.mul_ss(ArrayRef<4xaby3.AShr<FM64>>,ArrayRef<4xaby3.AShr<FM64>>)
The signature of this operation is the same as above, mpc.mul_ss
indicates the module is mpc
and the operation is mul_ss
.
The type ArrayRef<4xaby3.AShr<FM64>>
has two notable differences: 1. unlike hal ops, mpc ops operates on 1D-array instead of tensor, which makes it a more standard SIMD instruction. 2. the type aby3.AShr<FM64>
is protocol-dependent, in this case, it’s an ABY3 arithmetic share in FM64.
Finally, it’s dispatched to mpc.mul_aa
, the postfix _aa
indicates both parameters are arithmetic shares, then the ABY3 share addition protocol is performed.
But f_mul
could not be done with ring multiplication only, we have to truncate
the result to make the fixed point legal, in the following lines, hal._trunc
is called and finally dispatched to mpc.trunc_a
protocol.
The above example is pretty straight forward, now let’s make it harder.
Fixed point reciprocal is done with Goldschmidt approximation algorithm, the algorithm itself is not that simple, and when it’s executed on MPC, things become more complicated.
It takes a lot of effort to understand how it works, let’s directly see the tracing result.
[9]:
spu_reciprocal = pps.sim_jax(simulator, jnp.reciprocal)
z = spu_reciprocal(x)
[2023-02-25 08:33:10.167] [TR] [B] hlo.pphlo.constant()
[2023-02-25 08:33:10.167] [TR] [B] hal.constant(PtBufferView<0x7fd4b80acd10,xPT_F32,>, {})
[2023-02-25 08:33:10.167] [TR] [B] hal.make_pub2k(PtBufferView<0x7fd4b80acd10,xPT_F32,>)
[2023-02-25 08:33:10.167] [TR] [E] hal.make_pub2k(PtBufferView<0x7fd4b80acd10,xPT_F32,>)
[2023-02-25 08:33:10.167] [TR] [E] hal.constant(PtBufferView<0x7fd4b80acd10,xPT_F32,>, {})
[2023-02-25 08:33:10.167] [TR] [B] hal.broadcast_to(Value<xPFXP,s=>, {2,2})
[2023-02-25 08:33:10.167] [TR] [E] hal.broadcast_to(Value<xPFXP,s=>, {2,2})
[2023-02-25 08:33:10.167] [TR] [E] hlo.pphlo.constant()
[2023-02-25 08:33:10.167] [TR] [B] hlo.pphlo.divide()
[2023-02-25 08:33:10.167] [TR] [B] hal.div(Value<2x2xPFXP,s=0,0>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.167] [TR] [B] hal.dtype_cast(Value<2x2xPFXP,s=0,0>, FXP)
[2023-02-25 08:33:10.167] [TR] [E] hal.dtype_cast(Value<2x2xPFXP,s=0,0>, FXP)
[2023-02-25 08:33:10.167] [TR] [B] hal.dtype_cast(Value<2x2xSFXP,s=2,1>, FXP)
[2023-02-25 08:33:10.167] [TR] [E] hal.dtype_cast(Value<2x2xSFXP,s=2,1>, FXP)
[2023-02-25 08:33:10.167] [TR] [B] hal.f_div(Value<2x2xPFXP,s=0,0>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.167] [TR] [B] hal.div_goldschmidt(Value<2x2xPFXP,s=0,0>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.167] [TR] [B] hal._msb(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.167] [TR] [B] hal._msb_s(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.167] [TR] [B] mpc.msb_s(ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.167] [TR] [B] mpc.msb_a2b(ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.167] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.167] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.167] [TR] [B] mpc.and_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.167] [TR] [E] mpc.and_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.167] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 1)
[2023-02-25 08:33:10.167] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 1)
[2023-02-25 08:33:10.167] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 1)
[2023-02-25 08:33:10.167] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 1)
[2023-02-25 08:33:10.167] [TR] [B] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U32,32>>, ArrayRef<8xaby3.BShr<PT_U32,32>>)
[2023-02-25 08:33:10.167] [TR] [E] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U32,32>>, ArrayRef<8xaby3.BShr<PT_U32,32>>)
[2023-02-25 08:33:10.167] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U32,32>>, ArrayRef<4xaby3.BShr<PT_U32,32>>)
[2023-02-25 08:33:10.167] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U32,32>>, ArrayRef<4xaby3.BShr<PT_U32,32>>)
[2023-02-25 08:33:10.167] [TR] [B] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U16,16>>, ArrayRef<8xaby3.BShr<PT_U16,16>>)
[2023-02-25 08:33:10.167] [TR] [E] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U16,16>>, ArrayRef<8xaby3.BShr<PT_U16,16>>)
[2023-02-25 08:33:10.167] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U16,16>>, ArrayRef<4xaby3.BShr<PT_U16,16>>)
[2023-02-25 08:33:10.167] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U16,16>>, ArrayRef<4xaby3.BShr<PT_U16,16>>)
[2023-02-25 08:33:10.167] [TR] [B] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U8,8>>, ArrayRef<8xaby3.BShr<PT_U8,8>>)
[2023-02-25 08:33:10.167] [TR] [E] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U8,8>>, ArrayRef<8xaby3.BShr<PT_U8,8>>)
[2023-02-25 08:33:10.167] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U8,8>>, ArrayRef<4xaby3.BShr<PT_U8,8>>)
[2023-02-25 08:33:10.167] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U8,8>>, ArrayRef<4xaby3.BShr<PT_U8,8>>)
[2023-02-25 08:33:10.167] [TR] [B] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U8,4>>, ArrayRef<8xaby3.BShr<PT_U8,4>>)
[2023-02-25 08:33:10.167] [TR] [E] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U8,4>>, ArrayRef<8xaby3.BShr<PT_U8,4>>)
[2023-02-25 08:33:10.167] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U8,4>>, ArrayRef<4xaby3.BShr<PT_U8,4>>)
[2023-02-25 08:33:10.167] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U8,4>>, ArrayRef<4xaby3.BShr<PT_U8,4>>)
[2023-02-25 08:33:10.167] [TR] [B] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U8,2>>, ArrayRef<8xaby3.BShr<PT_U8,2>>)
[2023-02-25 08:33:10.167] [TR] [E] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U8,2>>, ArrayRef<8xaby3.BShr<PT_U8,2>>)
[2023-02-25 08:33:10.167] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U8,2>>, ArrayRef<4xaby3.BShr<PT_U8,2>>)
[2023-02-25 08:33:10.167] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U8,2>>, ArrayRef<4xaby3.BShr<PT_U8,2>>)
[2023-02-25 08:33:10.167] [TR] [B] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U8,1>>, ArrayRef<8xaby3.BShr<PT_U8,1>>)
[2023-02-25 08:33:10.167] [TR] [E] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U8,1>>, ArrayRef<8xaby3.BShr<PT_U8,1>>)
[2023-02-25 08:33:10.167] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U8,1>>, ArrayRef<4xaby3.BShr<PT_U8,1>>)
[2023-02-25 08:33:10.167] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U8,1>>, ArrayRef<4xaby3.BShr<PT_U8,1>>)
[2023-02-25 08:33:10.167] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.167] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.167] [TR] [B] mpc.rshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 63)
[2023-02-25 08:33:10.167] [TR] [E] mpc.rshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 63)
[2023-02-25 08:33:10.167] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U8,1>>, ArrayRef<4xaby3.BShr<PT_U8,1>>)
[2023-02-25 08:33:10.167] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U8,1>>, ArrayRef<4xaby3.BShr<PT_U8,1>>)
[2023-02-25 08:33:10.167] [TR] [E] mpc.msb_a2b(ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.167] [TR] [E] mpc.msb_s(ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.167] [TR] [E] hal._msb_s(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.167] [TR] [E] hal._msb(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.167] [TR] [B] hal._make_p(0)
[2023-02-25 08:33:10.167] [TR] [B] mpc.make_p(0)
[2023-02-25 08:33:10.168] [TR] [E] mpc.make_p(0)
[2023-02-25 08:33:10.168] [TR] [E] hal._make_p(0)
[2023-02-25 08:33:10.168] [TR] [B] hal.broadcast_to(Value<xP*,s=>, {2,2})
[2023-02-25 08:33:10.168] [TR] [E] hal.broadcast_to(Value<xP*,s=>, {2,2})
[2023-02-25 08:33:10.168] [TR] [B] hal._add(Value<2x2xS*,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.168] [TR] [B] hal._add_sp(Value<2x2xS*,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.add_sp(ArrayRef<4xaby3.BShr<PT_U8,1>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.b2a(ArrayRef<4xaby3.BShr<PT_U8,1>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.b2a(ArrayRef<4xaby3.BShr<PT_U8,1>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.add_ap(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.add_ap(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.add_sp(ArrayRef<4xaby3.BShr<PT_U8,1>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.168] [TR] [E] hal._add_sp(Value<2x2xS*,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.168] [TR] [E] hal._add(Value<2x2xS*,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.168] [TR] [B] hal._negate(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._make_p(1)
[2023-02-25 08:33:10.168] [TR] [B] mpc.make_p(1)
[2023-02-25 08:33:10.168] [TR] [E] mpc.make_p(1)
[2023-02-25 08:33:10.168] [TR] [E] hal._make_p(1)
[2023-02-25 08:33:10.168] [TR] [B] hal.broadcast_to(Value<xP*,s=>, {2,2})
[2023-02-25 08:33:10.168] [TR] [E] hal.broadcast_to(Value<xP*,s=>, {2,2})
[2023-02-25 08:33:10.168] [TR] [B] hal._not(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._not_s(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.not_s(ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.not_a(ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.not_a(ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.not_s(ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.168] [TR] [E] hal._not_s(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [E] hal._not(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._add(Value<2x2xS*,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.168] [TR] [B] hal._add_sp(Value<2x2xS*,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.add_sp(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.add_ap(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.add_ap(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.add_sp(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.168] [TR] [E] hal._add_sp(Value<2x2xS*,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.168] [TR] [E] hal._add(Value<2x2xS*,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.168] [TR] [E] hal._negate(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._mux(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._sub(Value<2x2xS*,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._negate(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._make_p(1)
[2023-02-25 08:33:10.168] [TR] [B] mpc.make_p(1)
[2023-02-25 08:33:10.168] [TR] [E] mpc.make_p(1)
[2023-02-25 08:33:10.168] [TR] [E] hal._make_p(1)
[2023-02-25 08:33:10.168] [TR] [B] hal.broadcast_to(Value<xP*,s=>, {2,2})
[2023-02-25 08:33:10.168] [TR] [E] hal.broadcast_to(Value<xP*,s=>, {2,2})
[2023-02-25 08:33:10.168] [TR] [B] hal._not(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._not_s(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.not_s(ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.not_a(ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.not_a(ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.not_s(ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.168] [TR] [E] hal._not_s(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [E] hal._not(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._add(Value<2x2xS*,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.168] [TR] [B] hal._add_sp(Value<2x2xS*,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.add_sp(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.add_ap(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.add_ap(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.add_sp(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.168] [TR] [E] hal._add_sp(Value<2x2xS*,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.168] [TR] [E] hal._add(Value<2x2xS*,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.168] [TR] [E] hal._negate(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._add(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._add_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.add_ss(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.add_aa(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.add_aa(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.add_ss(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.168] [TR] [E] hal._add_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [E] hal._add(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [E] hal._sub(Value<2x2xS*,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._mul(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._mul_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.mul_ss(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.mul_aa(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.mul_aa(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.mul_ss(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.168] [TR] [E] hal._mul_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [E] hal._mul(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._add(Value<2x2xSFXP,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._add_ss(Value<2x2xS*,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.add_ss(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.add_aa(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.add_aa(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.add_ss(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.168] [TR] [E] hal._add_ss(Value<2x2xS*,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [E] hal._add(Value<2x2xSFXP,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [E] hal._mux(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._prefix_or(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._make_p(0)
[2023-02-25 08:33:10.168] [TR] [B] mpc.make_p(0)
[2023-02-25 08:33:10.168] [TR] [E] mpc.make_p(0)
[2023-02-25 08:33:10.168] [TR] [E] hal._make_p(0)
[2023-02-25 08:33:10.168] [TR] [B] hal.broadcast_to(Value<xP*,s=>, {2,2})
[2023-02-25 08:33:10.168] [TR] [E] hal.broadcast_to(Value<xP*,s=>, {2,2})
[2023-02-25 08:33:10.168] [TR] [B] hal._xor(Value<2x2xSFXP,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.168] [TR] [B] hal._xor_sp(Value<2x2xSFXP,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_sp(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.a2b(ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.add_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.and_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.and_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 1)
[2023-02-25 08:33:10.168] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 1)
[2023-02-25 08:33:10.168] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 1)
[2023-02-25 08:33:10.168] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 1)
[2023-02-25 08:33:10.168] [TR] [B] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 2)
[2023-02-25 08:33:10.168] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 2)
[2023-02-25 08:33:10.168] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 2)
[2023-02-25 08:33:10.168] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 2)
[2023-02-25 08:33:10.168] [TR] [B] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 4)
[2023-02-25 08:33:10.168] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 4)
[2023-02-25 08:33:10.168] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 4)
[2023-02-25 08:33:10.168] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 4)
[2023-02-25 08:33:10.168] [TR] [B] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 8)
[2023-02-25 08:33:10.168] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 8)
[2023-02-25 08:33:10.168] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 8)
[2023-02-25 08:33:10.168] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 8)
[2023-02-25 08:33:10.168] [TR] [B] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 16)
[2023-02-25 08:33:10.168] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 16)
[2023-02-25 08:33:10.168] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 16)
[2023-02-25 08:33:10.168] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 16)
[2023-02-25 08:33:10.168] [TR] [B] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 32)
[2023-02-25 08:33:10.168] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 32)
[2023-02-25 08:33:10.168] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 32)
[2023-02-25 08:33:10.168] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 32)
[2023-02-25 08:33:10.168] [TR] [B] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 1)
[2023-02-25 08:33:10.168] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 1)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.add_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.a2b(ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bp(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bp(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_sp(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.168] [TR] [E] hal._xor_sp(Value<2x2xSFXP,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.168] [TR] [E] hal._xor(Value<2x2xSFXP,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.168] [TR] [B] hal._rshift(Value<2x2xS*,s=2,1>, 1)
[2023-02-25 08:33:10.168] [TR] [B] hal._rshift_s(Value<2x2xS*,s=2,1>, 1)
[2023-02-25 08:33:10.168] [TR] [B] mpc.rshift_s(ArrayRef<4xaby3.BShr<PT_U64,64>>, 1)
[2023-02-25 08:33:10.168] [TR] [B] mpc.rshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 1)
[2023-02-25 08:33:10.168] [TR] [E] mpc.rshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 1)
[2023-02-25 08:33:10.168] [TR] [E] mpc.rshift_s(ArrayRef<4xaby3.BShr<PT_U64,64>>, 1)
[2023-02-25 08:33:10.168] [TR] [E] hal._rshift_s(Value<2x2xS*,s=2,1>, 1)
[2023-02-25 08:33:10.168] [TR] [E] hal._rshift(Value<2x2xS*,s=2,1>, 1)
[2023-02-25 08:33:10.168] [TR] [B] hal._and(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._and_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.and_ss(ArrayRef<4xaby3.BShr<PT_U64,63>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.and_bb(ArrayRef<4xaby3.BShr<PT_U64,63>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.and_bb(ArrayRef<4xaby3.BShr<PT_U64,63>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.and_ss(ArrayRef<4xaby3.BShr<PT_U64,63>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] hal._and_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [E] hal._and(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._xor(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._xor_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_ss(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,63>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,63>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,63>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_ss(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,63>>)
[2023-02-25 08:33:10.168] [TR] [E] hal._xor_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [E] hal._xor(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._xor(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._xor_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_ss(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_ss(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] hal._xor_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [E] hal._xor(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._rshift(Value<2x2xS*,s=2,1>, 2)
[2023-02-25 08:33:10.168] [TR] [B] hal._rshift_s(Value<2x2xS*,s=2,1>, 2)
[2023-02-25 08:33:10.168] [TR] [B] mpc.rshift_s(ArrayRef<4xaby3.BShr<PT_U64,64>>, 2)
[2023-02-25 08:33:10.168] [TR] [B] mpc.rshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 2)
[2023-02-25 08:33:10.168] [TR] [E] mpc.rshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 2)
[2023-02-25 08:33:10.168] [TR] [E] mpc.rshift_s(ArrayRef<4xaby3.BShr<PT_U64,64>>, 2)
[2023-02-25 08:33:10.168] [TR] [E] hal._rshift_s(Value<2x2xS*,s=2,1>, 2)
[2023-02-25 08:33:10.168] [TR] [E] hal._rshift(Value<2x2xS*,s=2,1>, 2)
[2023-02-25 08:33:10.168] [TR] [B] hal._and(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._and_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.and_ss(ArrayRef<4xaby3.BShr<PT_U64,62>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.and_bb(ArrayRef<4xaby3.BShr<PT_U64,62>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.and_bb(ArrayRef<4xaby3.BShr<PT_U64,62>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.and_ss(ArrayRef<4xaby3.BShr<PT_U64,62>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] hal._and_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [E] hal._and(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._xor(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._xor_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_ss(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,62>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,62>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,62>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_ss(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,62>>)
[2023-02-25 08:33:10.168] [TR] [E] hal._xor_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [E] hal._xor(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._xor(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._xor_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_ss(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_ss(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] hal._xor_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [E] hal._xor(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._rshift(Value<2x2xS*,s=2,1>, 4)
[2023-02-25 08:33:10.168] [TR] [B] hal._rshift_s(Value<2x2xS*,s=2,1>, 4)
[2023-02-25 08:33:10.168] [TR] [B] mpc.rshift_s(ArrayRef<4xaby3.BShr<PT_U64,64>>, 4)
[2023-02-25 08:33:10.168] [TR] [B] mpc.rshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 4)
[2023-02-25 08:33:10.168] [TR] [E] mpc.rshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 4)
[2023-02-25 08:33:10.168] [TR] [E] mpc.rshift_s(ArrayRef<4xaby3.BShr<PT_U64,64>>, 4)
[2023-02-25 08:33:10.168] [TR] [E] hal._rshift_s(Value<2x2xS*,s=2,1>, 4)
[2023-02-25 08:33:10.168] [TR] [E] hal._rshift(Value<2x2xS*,s=2,1>, 4)
[2023-02-25 08:33:10.168] [TR] [B] hal._and(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._and_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.and_ss(ArrayRef<4xaby3.BShr<PT_U64,60>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.and_bb(ArrayRef<4xaby3.BShr<PT_U64,60>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.and_bb(ArrayRef<4xaby3.BShr<PT_U64,60>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.and_ss(ArrayRef<4xaby3.BShr<PT_U64,60>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] hal._and_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [E] hal._and(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._xor(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._xor_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_ss(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,60>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,60>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,60>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_ss(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,60>>)
[2023-02-25 08:33:10.168] [TR] [E] hal._xor_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [E] hal._xor(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._xor(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._xor_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_ss(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_ss(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] hal._xor_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [E] hal._xor(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._rshift(Value<2x2xS*,s=2,1>, 8)
[2023-02-25 08:33:10.168] [TR] [B] hal._rshift_s(Value<2x2xS*,s=2,1>, 8)
[2023-02-25 08:33:10.168] [TR] [B] mpc.rshift_s(ArrayRef<4xaby3.BShr<PT_U64,64>>, 8)
[2023-02-25 08:33:10.168] [TR] [B] mpc.rshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 8)
[2023-02-25 08:33:10.168] [TR] [E] mpc.rshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 8)
[2023-02-25 08:33:10.168] [TR] [E] mpc.rshift_s(ArrayRef<4xaby3.BShr<PT_U64,64>>, 8)
[2023-02-25 08:33:10.168] [TR] [E] hal._rshift_s(Value<2x2xS*,s=2,1>, 8)
[2023-02-25 08:33:10.168] [TR] [E] hal._rshift(Value<2x2xS*,s=2,1>, 8)
[2023-02-25 08:33:10.168] [TR] [B] hal._and(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._and_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.and_ss(ArrayRef<4xaby3.BShr<PT_U64,56>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.and_bb(ArrayRef<4xaby3.BShr<PT_U64,56>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.and_bb(ArrayRef<4xaby3.BShr<PT_U64,56>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.and_ss(ArrayRef<4xaby3.BShr<PT_U64,56>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] hal._and_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [E] hal._and(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._xor(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._xor_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_ss(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,56>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,56>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,56>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_ss(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,56>>)
[2023-02-25 08:33:10.168] [TR] [E] hal._xor_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [E] hal._xor(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._xor(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._xor_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_ss(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_ss(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] hal._xor_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [E] hal._xor(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._rshift(Value<2x2xS*,s=2,1>, 16)
[2023-02-25 08:33:10.168] [TR] [B] hal._rshift_s(Value<2x2xS*,s=2,1>, 16)
[2023-02-25 08:33:10.168] [TR] [B] mpc.rshift_s(ArrayRef<4xaby3.BShr<PT_U64,64>>, 16)
[2023-02-25 08:33:10.168] [TR] [B] mpc.rshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 16)
[2023-02-25 08:33:10.168] [TR] [E] mpc.rshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 16)
[2023-02-25 08:33:10.168] [TR] [E] mpc.rshift_s(ArrayRef<4xaby3.BShr<PT_U64,64>>, 16)
[2023-02-25 08:33:10.168] [TR] [E] hal._rshift_s(Value<2x2xS*,s=2,1>, 16)
[2023-02-25 08:33:10.168] [TR] [E] hal._rshift(Value<2x2xS*,s=2,1>, 16)
[2023-02-25 08:33:10.168] [TR] [B] hal._and(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._and_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.and_ss(ArrayRef<4xaby3.BShr<PT_U64,48>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.and_bb(ArrayRef<4xaby3.BShr<PT_U64,48>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.and_bb(ArrayRef<4xaby3.BShr<PT_U64,48>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.and_ss(ArrayRef<4xaby3.BShr<PT_U64,48>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] hal._and_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [E] hal._and(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._xor(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._xor_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_ss(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,48>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,48>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,48>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_ss(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,48>>)
[2023-02-25 08:33:10.168] [TR] [E] hal._xor_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [E] hal._xor(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._xor(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._xor_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_ss(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_ss(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] hal._xor_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [E] hal._xor(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._rshift(Value<2x2xS*,s=2,1>, 32)
[2023-02-25 08:33:10.168] [TR] [B] hal._rshift_s(Value<2x2xS*,s=2,1>, 32)
[2023-02-25 08:33:10.168] [TR] [B] mpc.rshift_s(ArrayRef<4xaby3.BShr<PT_U64,64>>, 32)
[2023-02-25 08:33:10.168] [TR] [B] mpc.rshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 32)
[2023-02-25 08:33:10.168] [TR] [E] mpc.rshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 32)
[2023-02-25 08:33:10.168] [TR] [E] mpc.rshift_s(ArrayRef<4xaby3.BShr<PT_U64,64>>, 32)
[2023-02-25 08:33:10.168] [TR] [E] hal._rshift_s(Value<2x2xS*,s=2,1>, 32)
[2023-02-25 08:33:10.168] [TR] [E] hal._rshift(Value<2x2xS*,s=2,1>, 32)
[2023-02-25 08:33:10.168] [TR] [B] hal._and(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._and_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.and_ss(ArrayRef<4xaby3.BShr<PT_U32,32>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.and_bb(ArrayRef<4xaby3.BShr<PT_U32,32>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.and_bb(ArrayRef<4xaby3.BShr<PT_U32,32>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.and_ss(ArrayRef<4xaby3.BShr<PT_U32,32>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] hal._and_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [E] hal._and(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._xor(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._xor_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_ss(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U32,32>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U32,32>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U32,32>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_ss(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U32,32>>)
[2023-02-25 08:33:10.168] [TR] [E] hal._xor_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [E] hal._xor(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._xor(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._xor_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_ss(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_ss(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] hal._xor_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [E] hal._xor(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [E] hal._prefix_or(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._rshift(Value<2x2xS*,s=2,1>, 1)
[2023-02-25 08:33:10.168] [TR] [B] hal._rshift_s(Value<2x2xS*,s=2,1>, 1)
[2023-02-25 08:33:10.168] [TR] [B] mpc.rshift_s(ArrayRef<4xaby3.BShr<PT_U64,64>>, 1)
[2023-02-25 08:33:10.168] [TR] [B] mpc.rshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 1)
[2023-02-25 08:33:10.168] [TR] [E] mpc.rshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 1)
[2023-02-25 08:33:10.168] [TR] [E] mpc.rshift_s(ArrayRef<4xaby3.BShr<PT_U64,64>>, 1)
[2023-02-25 08:33:10.168] [TR] [E] hal._rshift_s(Value<2x2xS*,s=2,1>, 1)
[2023-02-25 08:33:10.168] [TR] [E] hal._rshift(Value<2x2xS*,s=2,1>, 1)
[2023-02-25 08:33:10.168] [TR] [B] hal._xor(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._xor_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_ss(ArrayRef<4xaby3.BShr<PT_U64,63>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,63>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,63>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_ss(ArrayRef<4xaby3.BShr<PT_U64,63>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] hal._xor_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [E] hal._xor(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._bitrev(Value<2x2xS*,s=2,1>, 0, 36)
[2023-02-25 08:33:10.168] [TR] [B] hal._bitrev_s(Value<2x2xS*,s=2,1>, 0, 36)
[2023-02-25 08:33:10.168] [TR] [B] mpc.bitrev_s(ArrayRef<4xaby3.BShr<PT_U64,64>>, 0, 36)
[2023-02-25 08:33:10.168] [TR] [B] mpc.bitrev_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 0, 36)
[2023-02-25 08:33:10.168] [TR] [E] mpc.bitrev_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 0, 36)
[2023-02-25 08:33:10.168] [TR] [E] mpc.bitrev_s(ArrayRef<4xaby3.BShr<PT_U64,64>>, 0, 36)
[2023-02-25 08:33:10.168] [TR] [E] hal._bitrev_s(Value<2x2xS*,s=2,1>, 0, 36)
[2023-02-25 08:33:10.168] [TR] [E] hal._bitrev(Value<2x2xS*,s=2,1>, 0, 36)
[2023-02-25 08:33:10.168] [TR] [B] hal.f_mul(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._mul(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._mul_ss(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.mul_ss(ArrayRef<4xaby3.BShr<PT_U64,36>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.b2a(ArrayRef<4xaby3.BShr<PT_U64,36>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.add_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.and_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.and_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 1)
[2023-02-25 08:33:10.168] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 1)
[2023-02-25 08:33:10.168] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 1)
[2023-02-25 08:33:10.168] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 1)
[2023-02-25 08:33:10.168] [TR] [B] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 2)
[2023-02-25 08:33:10.168] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 2)
[2023-02-25 08:33:10.168] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 2)
[2023-02-25 08:33:10.168] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 2)
[2023-02-25 08:33:10.168] [TR] [B] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 4)
[2023-02-25 08:33:10.168] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 4)
[2023-02-25 08:33:10.168] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 4)
[2023-02-25 08:33:10.168] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 4)
[2023-02-25 08:33:10.168] [TR] [B] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 8)
[2023-02-25 08:33:10.168] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 8)
[2023-02-25 08:33:10.168] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 8)
[2023-02-25 08:33:10.168] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 8)
[2023-02-25 08:33:10.168] [TR] [B] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 16)
[2023-02-25 08:33:10.168] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 16)
[2023-02-25 08:33:10.168] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 16)
[2023-02-25 08:33:10.168] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 16)
[2023-02-25 08:33:10.168] [TR] [B] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 32)
[2023-02-25 08:33:10.168] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 32)
[2023-02-25 08:33:10.168] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 32)
[2023-02-25 08:33:10.168] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 32)
[2023-02-25 08:33:10.168] [TR] [B] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 1)
[2023-02-25 08:33:10.168] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 1)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.add_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.b2a(ArrayRef<4xaby3.BShr<PT_U64,36>>)
[2023-02-25 08:33:10.168] [TR] [B] mpc.mul_aa(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.mul_aa(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.168] [TR] [E] mpc.mul_ss(ArrayRef<4xaby3.BShr<PT_U64,36>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.168] [TR] [E] hal._mul_ss(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [E] hal._mul(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._trunc(Value<2x2xS*,s=2,1>, 0)
[2023-02-25 08:33:10.168] [TR] [B] hal._trunc_s(Value<2x2xS*,s=2,1>, 18)
[2023-02-25 08:33:10.168] [TR] [B] mpc.trunc_s(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:33:10.168] [TR] [B] mpc.trunc_a(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:33:10.168] [TR] [E] mpc.trunc_a(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:33:10.168] [TR] [E] mpc.trunc_s(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:33:10.168] [TR] [E] hal._trunc_s(Value<2x2xS*,s=2,1>, 18)
[2023-02-25 08:33:10.168] [TR] [E] hal._trunc(Value<2x2xS*,s=2,1>, 0)
[2023-02-25 08:33:10.168] [TR] [E] hal.f_mul(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal.constant(PtBufferView<0x7fd4e8ff6440,xPT_I32,>, {2,2})
[2023-02-25 08:33:10.168] [TR] [B] hal.make_pub2k(PtBufferView<0x7fd4e8ff6440,xPT_I32,>)
[2023-02-25 08:33:10.168] [TR] [E] hal.make_pub2k(PtBufferView<0x7fd4e8ff6440,xPT_I32,>)
[2023-02-25 08:33:10.168] [TR] [B] hal.broadcast_to(Value<xPI32,s=>, {2,2})
[2023-02-25 08:33:10.168] [TR] [E] hal.broadcast_to(Value<xPI32,s=>, {2,2})
[2023-02-25 08:33:10.168] [TR] [E] hal.constant(PtBufferView<0x7fd4e8ff6440,xPT_I32,>, {2,2})
[2023-02-25 08:33:10.168] [TR] [B] hal.constant(PtBufferView<0x7fd4e8ff6440,xPT_F32,>, {2,2})
[2023-02-25 08:33:10.168] [TR] [B] hal.make_pub2k(PtBufferView<0x7fd4e8ff6440,xPT_F32,>)
[2023-02-25 08:33:10.168] [TR] [E] hal.make_pub2k(PtBufferView<0x7fd4e8ff6440,xPT_F32,>)
[2023-02-25 08:33:10.168] [TR] [B] hal.broadcast_to(Value<xPFXP,s=>, {2,2})
[2023-02-25 08:33:10.168] [TR] [E] hal.broadcast_to(Value<xPFXP,s=>, {2,2})
[2023-02-25 08:33:10.168] [TR] [E] hal.constant(PtBufferView<0x7fd4e8ff6440,xPT_F32,>, {2,2})
[2023-02-25 08:33:10.168] [TR] [B] hal._mul(Value<2x2xPI32,s=0,0>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.168] [TR] [B] hal._mul_sp(Value<2x2xSFXP,s=2,1>, Value<2x2xPI32,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.mul_sp(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.mul_ap(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.mul_ap(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.mul_sp(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] hal._mul_sp(Value<2x2xSFXP,s=2,1>, Value<2x2xPI32,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [E] hal._mul(Value<2x2xPI32,s=0,0>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal.f_sub(Value<2x2xPFXP,s=0,0>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal.f_negate(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._negate(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._make_p(1)
[2023-02-25 08:33:10.169] [TR] [B] mpc.make_p(1)
[2023-02-25 08:33:10.169] [TR] [E] mpc.make_p(1)
[2023-02-25 08:33:10.169] [TR] [E] hal._make_p(1)
[2023-02-25 08:33:10.169] [TR] [B] hal.broadcast_to(Value<xP*,s=>, {2,2})
[2023-02-25 08:33:10.169] [TR] [E] hal.broadcast_to(Value<xP*,s=>, {2,2})
[2023-02-25 08:33:10.169] [TR] [B] hal._not(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._not_s(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.not_s(ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.not_a(ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.not_a(ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.not_s(ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] hal._not_s(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [E] hal._not(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._add(Value<2x2xS*,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [B] hal._add_sp(Value<2x2xS*,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.add_sp(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.add_ap(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.add_ap(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.add_sp(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] hal._add_sp(Value<2x2xS*,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [E] hal._add(Value<2x2xS*,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [E] hal._negate(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [E] hal.f_negate(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal.f_add(Value<2x2xPFXP,s=0,0>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._add(Value<2x2xPFXP,s=0,0>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._add_sp(Value<2x2xSFXP,s=2,1>, Value<2x2xPFXP,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.add_sp(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.add_ap(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.add_ap(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.add_sp(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] hal._add_sp(Value<2x2xSFXP,s=2,1>, Value<2x2xPFXP,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [E] hal._add(Value<2x2xPFXP,s=0,0>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [E] hal.f_add(Value<2x2xPFXP,s=0,0>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [E] hal.f_sub(Value<2x2xPFXP,s=0,0>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal.constant(PtBufferView<0x7fd4e8ff6440,xPT_F32,>, {2,2})
[2023-02-25 08:33:10.169] [TR] [B] hal.make_pub2k(PtBufferView<0x7fd4e8ff6440,xPT_F32,>)
[2023-02-25 08:33:10.169] [TR] [E] hal.make_pub2k(PtBufferView<0x7fd4e8ff6440,xPT_F32,>)
[2023-02-25 08:33:10.169] [TR] [B] hal.broadcast_to(Value<xPFXP,s=>, {2,2})
[2023-02-25 08:33:10.169] [TR] [E] hal.broadcast_to(Value<xPFXP,s=>, {2,2})
[2023-02-25 08:33:10.169] [TR] [E] hal.constant(PtBufferView<0x7fd4e8ff6440,xPT_F32,>, {2,2})
[2023-02-25 08:33:10.169] [TR] [B] hal.f_mul(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._mul(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._mul_ss(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.mul_ss(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.mul_aa(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.mul_aa(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.mul_ss(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] hal._mul_ss(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [E] hal._mul(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._trunc(Value<2x2xS*,s=2,1>, 0)
[2023-02-25 08:33:10.169] [TR] [B] hal._trunc_s(Value<2x2xS*,s=2,1>, 18)
[2023-02-25 08:33:10.169] [TR] [B] mpc.trunc_s(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:33:10.169] [TR] [B] mpc.trunc_a(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:33:10.169] [TR] [E] mpc.trunc_a(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:33:10.169] [TR] [E] mpc.trunc_s(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:33:10.169] [TR] [E] hal._trunc_s(Value<2x2xS*,s=2,1>, 18)
[2023-02-25 08:33:10.169] [TR] [E] hal._trunc(Value<2x2xS*,s=2,1>, 0)
[2023-02-25 08:33:10.169] [TR] [E] hal.f_mul(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal.f_sub(Value<2x2xPFXP,s=0,0>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal.f_negate(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._negate(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._make_p(1)
[2023-02-25 08:33:10.169] [TR] [B] mpc.make_p(1)
[2023-02-25 08:33:10.169] [TR] [E] mpc.make_p(1)
[2023-02-25 08:33:10.169] [TR] [E] hal._make_p(1)
[2023-02-25 08:33:10.169] [TR] [B] hal.broadcast_to(Value<xP*,s=>, {2,2})
[2023-02-25 08:33:10.169] [TR] [E] hal.broadcast_to(Value<xP*,s=>, {2,2})
[2023-02-25 08:33:10.169] [TR] [B] hal._not(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._not_s(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.not_s(ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.not_a(ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.not_a(ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.not_s(ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] hal._not_s(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [E] hal._not(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._add(Value<2x2xS*,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [B] hal._add_sp(Value<2x2xS*,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.add_sp(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.add_ap(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.add_ap(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.add_sp(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] hal._add_sp(Value<2x2xS*,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [E] hal._add(Value<2x2xS*,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [E] hal._negate(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [E] hal.f_negate(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal.f_add(Value<2x2xPFXP,s=0,0>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._add(Value<2x2xPFXP,s=0,0>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._add_sp(Value<2x2xSFXP,s=2,1>, Value<2x2xPFXP,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.add_sp(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.add_ap(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.add_ap(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.add_sp(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] hal._add_sp(Value<2x2xSFXP,s=2,1>, Value<2x2xPFXP,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [E] hal._add(Value<2x2xPFXP,s=0,0>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [E] hal.f_add(Value<2x2xPFXP,s=0,0>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [E] hal.f_sub(Value<2x2xPFXP,s=0,0>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal.f_add(Value<2x2xSFXP,s=2,1>, Value<2x2xPFXP,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [B] hal._add(Value<2x2xSFXP,s=2,1>, Value<2x2xPFXP,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [B] hal._add_sp(Value<2x2xSFXP,s=2,1>, Value<2x2xPFXP,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.add_sp(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.add_ap(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.add_ap(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.add_sp(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] hal._add_sp(Value<2x2xSFXP,s=2,1>, Value<2x2xPFXP,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [E] hal._add(Value<2x2xSFXP,s=2,1>, Value<2x2xPFXP,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [E] hal.f_add(Value<2x2xSFXP,s=2,1>, Value<2x2xPFXP,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [B] hal.f_mul(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._mul(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._mul_ss(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.mul_ss(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.mul_aa(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.mul_aa(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.mul_ss(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] hal._mul_ss(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [E] hal._mul(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._trunc(Value<2x2xS*,s=2,1>, 0)
[2023-02-25 08:33:10.169] [TR] [B] hal._trunc_s(Value<2x2xS*,s=2,1>, 18)
[2023-02-25 08:33:10.169] [TR] [B] mpc.trunc_s(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:33:10.169] [TR] [B] mpc.trunc_a(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:33:10.169] [TR] [E] mpc.trunc_a(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:33:10.169] [TR] [E] mpc.trunc_s(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:33:10.169] [TR] [E] hal._trunc_s(Value<2x2xS*,s=2,1>, 18)
[2023-02-25 08:33:10.169] [TR] [E] hal._trunc(Value<2x2xS*,s=2,1>, 0)
[2023-02-25 08:33:10.169] [TR] [E] hal.f_mul(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal.f_square(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal.f_mul(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._mul(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._mul_ss(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.mul_ss(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.mul_aa(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.mul_aa(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.mul_ss(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] hal._mul_ss(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [E] hal._mul(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._trunc(Value<2x2xS*,s=2,1>, 0)
[2023-02-25 08:33:10.169] [TR] [B] hal._trunc_s(Value<2x2xS*,s=2,1>, 18)
[2023-02-25 08:33:10.169] [TR] [B] mpc.trunc_s(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:33:10.169] [TR] [B] mpc.trunc_a(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:33:10.169] [TR] [E] mpc.trunc_a(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:33:10.169] [TR] [E] mpc.trunc_s(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:33:10.169] [TR] [E] hal._trunc_s(Value<2x2xS*,s=2,1>, 18)
[2023-02-25 08:33:10.169] [TR] [E] hal._trunc(Value<2x2xS*,s=2,1>, 0)
[2023-02-25 08:33:10.169] [TR] [E] hal.f_mul(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [E] hal.f_square(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal.f_add(Value<2x2xSFXP,s=2,1>, Value<2x2xPFXP,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [B] hal._add(Value<2x2xSFXP,s=2,1>, Value<2x2xPFXP,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [B] hal._add_sp(Value<2x2xSFXP,s=2,1>, Value<2x2xPFXP,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.add_sp(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.add_ap(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.add_ap(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.add_sp(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] hal._add_sp(Value<2x2xSFXP,s=2,1>, Value<2x2xPFXP,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [E] hal._add(Value<2x2xSFXP,s=2,1>, Value<2x2xPFXP,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [E] hal.f_add(Value<2x2xSFXP,s=2,1>, Value<2x2xPFXP,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [B] hal.f_mul(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._mul(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._mul_ss(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.mul_ss(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.mul_aa(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.mul_aa(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.mul_ss(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] hal._mul_ss(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [E] hal._mul(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._trunc(Value<2x2xS*,s=2,1>, 0)
[2023-02-25 08:33:10.169] [TR] [B] hal._trunc_s(Value<2x2xS*,s=2,1>, 18)
[2023-02-25 08:33:10.169] [TR] [B] mpc.trunc_s(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:33:10.169] [TR] [B] mpc.trunc_a(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:33:10.169] [TR] [E] mpc.trunc_a(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:33:10.169] [TR] [E] mpc.trunc_s(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:33:10.169] [TR] [E] hal._trunc_s(Value<2x2xS*,s=2,1>, 18)
[2023-02-25 08:33:10.169] [TR] [E] hal._trunc(Value<2x2xS*,s=2,1>, 0)
[2023-02-25 08:33:10.169] [TR] [E] hal.f_mul(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal.f_mul(Value<2x2xSFXP,s=2,1>, Value<2x2xPFXP,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [B] hal._mul(Value<2x2xSFXP,s=2,1>, Value<2x2xPFXP,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [B] hal._mul_sp(Value<2x2xSFXP,s=2,1>, Value<2x2xPFXP,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.mul_sp(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.mul_ap(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.mul_ap(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.mul_sp(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] hal._mul_sp(Value<2x2xSFXP,s=2,1>, Value<2x2xPFXP,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [E] hal._mul(Value<2x2xSFXP,s=2,1>, Value<2x2xPFXP,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [B] hal._trunc(Value<2x2xS*,s=2,1>, 0)
[2023-02-25 08:33:10.169] [TR] [B] hal._trunc_s(Value<2x2xS*,s=2,1>, 18)
[2023-02-25 08:33:10.169] [TR] [B] mpc.trunc_s(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:33:10.169] [TR] [B] mpc.trunc_a(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:33:10.169] [TR] [E] mpc.trunc_a(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:33:10.169] [TR] [E] mpc.trunc_s(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:33:10.169] [TR] [E] hal._trunc_s(Value<2x2xS*,s=2,1>, 18)
[2023-02-25 08:33:10.169] [TR] [E] hal._trunc(Value<2x2xS*,s=2,1>, 0)
[2023-02-25 08:33:10.169] [TR] [E] hal.f_mul(Value<2x2xSFXP,s=2,1>, Value<2x2xPFXP,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [B] hal.f_mul(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._mul(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._mul_ss(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.mul_ss(ArrayRef<4xaby3.BShr<PT_U64,36>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.b2a(ArrayRef<4xaby3.BShr<PT_U64,36>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.add_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.and_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.and_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 1)
[2023-02-25 08:33:10.169] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 1)
[2023-02-25 08:33:10.169] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 1)
[2023-02-25 08:33:10.169] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 1)
[2023-02-25 08:33:10.169] [TR] [B] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 2)
[2023-02-25 08:33:10.169] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 2)
[2023-02-25 08:33:10.169] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 2)
[2023-02-25 08:33:10.169] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 2)
[2023-02-25 08:33:10.169] [TR] [B] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 4)
[2023-02-25 08:33:10.169] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 4)
[2023-02-25 08:33:10.169] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 4)
[2023-02-25 08:33:10.169] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 4)
[2023-02-25 08:33:10.169] [TR] [B] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 8)
[2023-02-25 08:33:10.169] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 8)
[2023-02-25 08:33:10.169] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 8)
[2023-02-25 08:33:10.169] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 8)
[2023-02-25 08:33:10.169] [TR] [B] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 16)
[2023-02-25 08:33:10.169] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 16)
[2023-02-25 08:33:10.169] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 16)
[2023-02-25 08:33:10.169] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 16)
[2023-02-25 08:33:10.169] [TR] [B] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 32)
[2023-02-25 08:33:10.169] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 32)
[2023-02-25 08:33:10.169] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 32)
[2023-02-25 08:33:10.169] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 32)
[2023-02-25 08:33:10.169] [TR] [B] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.and_bb(ArrayRef<8xaby3.BShr<PT_U64,64>>, ArrayRef<8xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 1)
[2023-02-25 08:33:10.169] [TR] [E] mpc.lshift_b(ArrayRef<4xaby3.BShr<PT_U64,64>>, 1)
[2023-02-25 08:33:10.169] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.xor_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.add_bb(ArrayRef<4xaby3.BShr<PT_U64,64>>, ArrayRef<4xaby3.BShr<PT_U64,64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.b2a(ArrayRef<4xaby3.BShr<PT_U64,36>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.mul_aa(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.mul_aa(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.mul_ss(ArrayRef<4xaby3.BShr<PT_U64,36>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] hal._mul_ss(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [E] hal._mul(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._trunc(Value<2x2xS*,s=2,1>, 0)
[2023-02-25 08:33:10.169] [TR] [B] hal._trunc_s(Value<2x2xS*,s=2,1>, 18)
[2023-02-25 08:33:10.169] [TR] [B] mpc.trunc_s(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:33:10.169] [TR] [B] mpc.trunc_a(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:33:10.169] [TR] [E] mpc.trunc_a(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:33:10.169] [TR] [E] mpc.trunc_s(ArrayRef<4xaby3.AShr<FM64>>, 18)
[2023-02-25 08:33:10.169] [TR] [E] hal._trunc_s(Value<2x2xS*,s=2,1>, 18)
[2023-02-25 08:33:10.169] [TR] [E] hal._trunc(Value<2x2xS*,s=2,1>, 0)
[2023-02-25 08:33:10.169] [TR] [E] hal.f_mul(Value<2x2xSFXP,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._negate(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._make_p(1)
[2023-02-25 08:33:10.169] [TR] [B] mpc.make_p(1)
[2023-02-25 08:33:10.169] [TR] [E] mpc.make_p(1)
[2023-02-25 08:33:10.169] [TR] [E] hal._make_p(1)
[2023-02-25 08:33:10.169] [TR] [B] hal.broadcast_to(Value<xP*,s=>, {2,2})
[2023-02-25 08:33:10.169] [TR] [E] hal.broadcast_to(Value<xP*,s=>, {2,2})
[2023-02-25 08:33:10.169] [TR] [B] hal._not(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._not_s(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.not_s(ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.not_a(ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.not_a(ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.not_s(ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] hal._not_s(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [E] hal._not(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._add(Value<2x2xS*,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [B] hal._add_sp(Value<2x2xS*,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.add_sp(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.add_ap(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.add_ap(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.add_sp(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] hal._add_sp(Value<2x2xS*,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [E] hal._add(Value<2x2xS*,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [E] hal._negate(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._mux(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._sub(Value<2x2xS*,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._negate(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._make_p(1)
[2023-02-25 08:33:10.169] [TR] [B] mpc.make_p(1)
[2023-02-25 08:33:10.169] [TR] [E] mpc.make_p(1)
[2023-02-25 08:33:10.169] [TR] [E] hal._make_p(1)
[2023-02-25 08:33:10.169] [TR] [B] hal.broadcast_to(Value<xP*,s=>, {2,2})
[2023-02-25 08:33:10.169] [TR] [E] hal.broadcast_to(Value<xP*,s=>, {2,2})
[2023-02-25 08:33:10.169] [TR] [B] hal._not(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._not_s(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.not_s(ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.not_a(ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.not_a(ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.not_s(ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] hal._not_s(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [E] hal._not(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._add(Value<2x2xS*,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [B] hal._add_sp(Value<2x2xS*,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.add_sp(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.add_ap(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.add_ap(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.add_sp(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xPub2k<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] hal._add_sp(Value<2x2xS*,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [E] hal._add(Value<2x2xS*,s=2,1>, Value<2x2xP*,s=0,0>)
[2023-02-25 08:33:10.169] [TR] [E] hal._negate(Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._add(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._add_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.add_ss(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.add_aa(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.add_aa(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.add_ss(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] hal._add_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [E] hal._add(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [E] hal._sub(Value<2x2xS*,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._mul(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._mul_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.mul_ss(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.mul_aa(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.mul_aa(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.mul_ss(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] hal._mul_ss(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [E] hal._mul(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._add(Value<2x2xSFXP,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] hal._add_ss(Value<2x2xS*,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.add_ss(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [B] mpc.add_aa(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.add_aa(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] mpc.add_ss(ArrayRef<4xaby3.AShr<FM64>>, ArrayRef<4xaby3.AShr<FM64>>)
[2023-02-25 08:33:10.169] [TR] [E] hal._add_ss(Value<2x2xS*,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [E] hal._add(Value<2x2xSFXP,s=2,1>, Value<2x2xS*,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [E] hal._mux(Value<2x2xS*,s=2,1>, Value<2x2xS*,s=2,1>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [E] hal.div_goldschmidt(Value<2x2xPFXP,s=0,0>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [E] hal.f_div(Value<2x2xPFXP,s=0,0>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [E] hal.div(Value<2x2xPFXP,s=0,0>, Value<2x2xSFXP,s=2,1>)
[2023-02-25 08:33:10.169] [TR] [E] hlo.pphlo.divide()
Surprise, it’s really a lot of ops!
Yes, that’s why MPC is still relatively slow and why SPU wants to optimize it :P
The reciprocal
is still a relative simple operator, you can try more complicated op like convolution
.
Misc#
Simulation could be used to inspect other parts of SPU, i.e. the fixed point arithmetic accuracy.
As the above example indicates, non-linear functions like reciprocal
and exp
are approximated with some numeric methods, so the result is not as accurate as floating point arithmetic.
For example.
[ ]:
%pip install matplotlib
[10]:
from matplotlib import pyplot as plt
simulator = pps.Simulator.simple(3, protocol, spu.FieldType.FM128)
spu_exp = pps.sim_jax(simulator, jnp.exp)
x = np.arange(0.,23.)
spu_y = spu_exp(x)
jax_y = jnp.exp(x)
plt.title("Matplotlib demo")
plt.plot(x,spu_y)
plt.plot(x,jax_y)
plt.show()

As we can see, the SPU version of exp
(blue line) diverges with the standard version when input is larger.
Finally, SPU, as a secure computation, behaves very differently from CPU, both in accuracy and cost model, when you are not sure about how it works, simulate on it!