public static unsafe void Intersects2(ref BoundingBoxWide a, ref BoundingBoxWide b, out Vector<int> intersectionMask)
{
var minX = Vector.Max(a.Min.X, b.Min.X);
var minY = Vector.Max(a.Min.Y, b.Min.Y);
var minZ = Vector.Max(a.Min.Z, b.Min.Z);
var maxX = Vector.Min(a.Max.X, b.Max.X);
var maxY = Vector.Min(a.Max.Y, b.Max.Y);
var maxZ = Vector.Min(a.Max.Z, b.Max.Z);
var xLeq = Vector.LessThanOrEqual(minX, maxX);
var yLeq = Vector.LessThanOrEqual(minY, maxY);
var zLeq = Vector.LessThanOrEqual(minZ, maxZ);
intersectionMask = Vector.BitwiseAnd(xLeq, Vector.BitwiseAnd(yLeq, zLeq));
}