diff options
| author | Tim Foley <tfoleyNV@users.noreply.github.com> | 2017-11-07 16:47:36 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-11-07 16:47:36 -0800 |
| commit | a5dfa5cd2bfa11fb3d9e84877f8dead1815e9077 (patch) | |
| tree | fbc440ab3e7dc6843b3ef653a70e134b58758885 /source/slang/ir-inst-defs.h | |
| parent | 6e591ada0eb652c320bba4bd8a46cd579946df01 (diff) | |
IR: add support for `discard` statement (#261)
- Add definition of `discard` instruction
- A `discard` is a terminator instruction, just like `returnVoid`
- Lower `DiscardStmt` in AST to a `discard` instruction in the IR
- Emit `discard` instruction as a `discard;` statement when emitting HLSL/GLSL
- Add a test case using the "graphics compute" mode that tests discard. The test writes to one entry in a UAV before doing a conditional (always true at runtime) discard, and then writes to another entry; we expect to see the results of the first write, but not the second.
Diffstat (limited to 'source/slang/ir-inst-defs.h')
| -rw-r--r-- | source/slang/ir-inst-defs.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/source/slang/ir-inst-defs.h b/source/slang/ir-inst-defs.h index d2e2c12e8..a8118f714 100644 --- a/source/slang/ir-inst-defs.h +++ b/source/slang/ir-inst-defs.h @@ -181,6 +181,8 @@ INST(if, if, 3, 0) INST(ifElse, ifElse, 4, 0) INST(loopTest, loopTest, 3, 0) +INST(discard, discard, 0, 0) + INST(Add, add, 2, 0) INST(Sub, sub, 2, 0) INST(Mul, mul, 2, 0) |
