some_value’s type is a data structure (EuclideanTransform3f - see below)
[codebox]struct float3x3
{
float3 rows[3];
__device__ void operator=(const float3x3 &b)
{
rows[0] = b.rows[0];
rows[1] = b.rows[1];
rows[2] = b.rows[2];
}
};
struct align(16) EuclideanTransform3f
{
float3x3 R;
float3 T;
__device__ void operator=(const EuclideanTransform3f &b)
{
R = b.R;
T = b.T;
}
};[/codebox]
Update: I just tested with various other types (float2/3/4) - they all exhibit the same problem.
Looking into a repro case (I’ve tried this before though, with little/no success - I suspect the size of my kernel is somehow making the compiler a bit crazy, that said it’s a fairly straight forward kernel)