Skip to content

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

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