[clang] [AMDGPU] Stop coercing structs with FP and int fields to integer arrays (PR #185083)
via cfe-commits
cfe-commits at lists.llvm.org
Fri May 1 23:13:28 PDT 2026
addmisol wrote:
> @arsenm and @addmisol I seems seeing some behavior change with this PR. The small struct with fp16 type used to be packed, no longer gets packed.
The behavior change (fp16 structs no longer packed to i32) is intentional - we preserve float types now.
However, I understand the concern about packing efficiency.. A potential solution would be to pack uniform float structs into vector types instead(if i am correct..):
{__fp16, __fp16} to <2 x half> (instead of i32 or {half, half})
{float, float} to <2 x float> (instead of [2 x i32] or {float, float})
This would:
- Preserve float type information
- Pack into a single value/register
- Enable SIMD optimizations
cc @arsenm
https://github.com/llvm/llvm-project/pull/185083
More information about the cfe-commits
mailing list