microsoft / microsoft/DirectXShaderCompiler
[SPIR-V] Cannot have execution modes with with different arg
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 3.7k
- Forks
- 900
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 44
Description
Description
The internal implementation of the execution mode instruction only allows for a single OpExecutionMode(Id) instruction for each execution mode. However, there are a few that allow multiple OpExecutionMode instructions when the arguments are different.
Steps to Reproduce
See https://godbolt.org/z/64cPaTr87. Node that the output contains
OpExecutionMode %main DenormPreserve 16
but not
OpExecutionMode %main DenormPreserve 32
Actual Behavior
There should be two DenormPreserve execution mode instruction. One for 16 and one for 32.
Environment
- DXC version: trunk
- Host Operating System: all
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the Godbolt reproducer linked in the issue and trace the internal handling of OpExecutionMode(Id) instructions. Confirm the current output contains only DenormPreserve 16, then make the behavior emit both the 16 and 32 variants when their arguments differ.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100