Issue 153303
Summary [HLSL] Crash when wrong parameter type is used for entry point parameter with SV_GroupThreadID
Labels new issue
Assignees
Reporter bob80905
    The compiler crashes with an assertion failure:
```
Assertion failed: isValidOperands(Vec, Elt, Index) && "Invalid insertelement instruction operands!", file D:/llvm-project/llvm/lib/IR/Instructions.cpp, line 1696
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: D:\\llvm-project\\build\\bin\\clang-dxc.exe -enable-16bit-types -T cs_6_5 C:\\Users\\jbatista\\Desktop\\hlsl.hlsl
1.      <eof> parser at end of file
2.      C:\Users\jbatista\Desktop\hlsl.hlsl:3:6: LLVM IR generation of declaration 'main'
3. C:\Users\jbatista\Desktop\hlsl.hlsl:3:6: Generating code for declaration 'main'
Exception Code: 0xC000001D
```

This failure is reproduced with this minimal shader:
```
[numthreads(4,1,1)]
void main(uint16_t3 TID : SV_GroupThreadID) {
  uint OutIdx = TID.x * 3;
}
```
Note that the parameter type for `TID`, `uint16_t3`, should really be a 32 bit integer, or an i32. Because it isn't, there's a mismatch when it's compared against the attribute's expected result type. i16 != i32.
Compilation args: -enable-16bit-types -T cs_6_5
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to