[SM6.10] Fix numeric types allowed in LinAlg intrins#8465
Conversation
| AR_BASIC_UINT16, AR_BASIC_INT8_4PACKED, | ||
| AR_BASIC_UINT8_4PACKED, AR_BASIC_NOCAST, | ||
| AR_BASIC_UNKNOWN}; | ||
| AR_BASIC_FLOAT64, AR_BASIC_LITERAL_INT, |
There was a problem hiding this comment.
I actually don't think we want/need to keep AR_BASIC_LITERAL_INT, or AR_BASIC_LITERAL_FLOAT here.
Also, AR_BASIC_FLOAT32_PARTIAL_PRECISION is half when in min-precision mode that maps to ordinary float. I don't think it's necessary to support that, but it probably doesn't hurt.
There was a problem hiding this comment.
fix will be up in a couple minutes
There was a problem hiding this comment.
Okay so removing AR_BASIC_LITERAL_INT caused some test failures. Specifically, in SetElement
dxc/DirectXShaderCompiler/tools/clang/test/CodeGenDXIL/hlsl/linalg/builtins/matrixsetelement/nominal.hlsl:21:3: note: candidate function not viable: no known conversion from 'literal int' to 'unsigned int' for 4th argument
__builtin_LinAlg_MatrixSetElement(mat2, mat1, 1, 5);
I think this would be fine in real use cases because of the header implementation but given that is a slightly larger change/longer discussion I'm going to take your offer to punt :)
tex3d
left a comment
There was a problem hiding this comment.
We could address tightening of the g_LinAlgCT in the future. For now, this looks good.
|
#8468 issue to track follow up fixes/discussions |
Fixes #8271
Use
LinAlgas the intrinsic type instead ofnumericfor LinAlg intrinsics and update theLinAlgto match current allowed types