Skip to content

[libclc] remangler generates wrong function _Z22__spirv_GroupBroadcastiDhm when long width is 32 #21665

@wenju-he

Description

@wenju-he

Describe the bug

libspirv variants with long_width = 32 contain symbol _Z22__spirv_GroupBroadcastiDhm.
However,
_Z22__spirv_GroupBroadcastiDhm __spirv_GroupBroadcast(int, half, unsigned long)
should be remangled to
_Z22__spirv_GroupBroadcastiDF16_m __spirv_GroupBroadcast(int, _Float16, unsigned long)

_Z22__spirv_GroupBroadcastiDF16_Dv2_m and _Z22__spirv_GroupBroadcastiDF16_Dv3_m symbols are also missing in these long_width=32 bitcodes.

It seems the current logic incorrectly handles the case when both function has both half and long parameters that requires remangling.

This issue is exposed by #21588

To reproduce

Environment

Additional context

No response

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions