float2, float3 and float4 are trivially copyable in CUDA, but they are not in HIP.
This results in the following piece of code working in CUDA, but failing in HIP:
static_assert(std::is_trivially_copyable_v<float2>);
It transitively applies to any class that uses such a data member as well.