Skip to content

Commit c8bd8bc

Browse files
committed
Fix the return types of dot4add_i8packed and dot4add_u8packed.
Change the definition of the HLSL `dot4add_i8packed` and `dot4add_u8packed` intrinsics in `utils/hct/gen_intrin_main.txt` to simply spell out the return types, rather than saying that their return type is determined by their third argument. This prevents DXC from trying to give those functions declarations like declare i64 @"\01?dot4add_u8packed@hlsl@@YA_JII_J@Z"(i32, i32, i64 signext) #1 which seems to expect a 64-bit third argument and return value. These functions are not generic, and they have only one overload, so there is no need to use interesting `uComponentTypeId` values to get the right effects, and `HLSLExternalSource::MatchArguments` seems to get confused about how to treat argument types that affect the return types. Fixes #7400.
1 parent 34b6d0f commit c8bd8bc

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

utils/hct/gen_intrin_main.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -339,8 +339,8 @@ float<4,3> [[rn]] ObjectToWorld4x3();
339339
float<4,3> [[rn]] WorldToObject4x3();
340340

341341
// Packed dot products with accumulate:
342-
$type3 [[rn]] dot4add_u8packed(in uint a, in $type1 b, in uint c);
343-
$type3 [[rn]] dot4add_i8packed(in uint a, in $type1 b, in int c);
342+
uint [[rn]] dot4add_u8packed(in uint a, in $type1 b, in uint c);
343+
int [[rn]] dot4add_i8packed(in uint a, in $type1 b, in int c);
344344
$type3 [[rn]] dot2add(in float16_t<2> a, in $type1 b, in float c);
345345

346346
// Unpacking intrinsics

0 commit comments

Comments
 (0)