On 5/6/25 04:12, Paolo Bonzini wrote:
On 5/5/25 22:27, Richard Henderson wrote:
+ uint64_t v1 = ti_const_val(t1);
+ uint64_t v2 = ti_const_val(t2);
Are v1 and v2 needed at all?
If starting from z1==o1 and z2==o2, you will always end up with z1|z2 == o1|o2
after these:
+ z1 = (uint32_t)z1 >> shr;
+ o1 = (uint32_t)o1 >> shr;
+ z2 = (uint64_t)((int32_t)z2 << (32 - shr));
+ o2 = (uint64_t)((int32_t)o2 << (32 - shr));
or these:
+ z1 >>= shr;
+ o1 >>= shr;
+ z2 <<= 64 - shr;
+ o2 <<= 64 - shr;
so fold_masks_zo would do the job.
Yes indeed, thanks again.
r~