Closed aitor-lunarg closed 2 months ago
So SPIR-V is actually supposed to support 64x64 -> 128-bit multiplication here?
So SPIR-V is actually supposed to support 64x64 -> 128-bit multiplication here?
That is my understanding. According to the spec https://registry.khronos.org/SPIR-V/specs/unified1/SPIRV.html#OpSMulExtended the type needs to be an integer type but there's no mention to a limit in width, so I understand 64x64 ->128-bit multiplication is allowed.
Given the following Spir-V code:
The following MSL is generated:
However, the generated MSL incorrectly casts to 32 bit integers when the operation
OpSMulExtended
works with 64 bit integers.Found while running CTS over MoltenVK. Failing tests: