From a596a796293db972a2b782c346aa327b73d0339b Mon Sep 17 00:00:00 2001 From: Natalia Gavrilenko Date: Thu, 12 Sep 2024 17:54:43 +0200 Subject: [PATCH] Fixed spirv memory operands parser --- dartagnan/src/main/antlr4/Spirv.g4 | 18 +- .../visitors/spirv/VisitorOpsMemory.java | 35 +- .../visitors/spirv/helpers/HelperTags.java | 84 +++ .../parsers/program/ParserSpirvTest.java | 44 +- .../spirv/helpers/HelperTagsTest.java | 155 +++- .../malformed-loop-merge-true-label.spv.dis | 5 +- .../malformed-loop-merge.spv.dis | 5 +- .../malformed-selection-merge-label.spv.dis | 5 +- .../malformed-selection-merge.spv.dis | 5 +- .../illegal-parameter-order-1.spv.dis | 19 + .../illegal-parameter-order-2.spv.dis | 19 + .../memory-operands/missing-alignment.spv.dis | 19 + .../memory-operands/missing-scope-1.spv.dis | 19 + .../memory-operands/missing-scope-2.spv.dis | 19 + .../unnecessary-alignment-1.spv.dis | 19 + .../unnecessary-alignment-2.spv.dis | 19 + .../unnecessary-alignment-3.spv.dis | 19 + .../unnecessary-scope-1.spv.dis | 19 + .../unnecessary-scope-2.spv.dis | 19 + .../program/spirv/valid/2+2-write-rel.spv.dis | 521 ------------- .../spirv/valid/2+2-write-results.spv.dis | 192 ----- .../program/spirv/valid/2+2-write.spv.dis | 520 ------------- .../program/spirv/valid/compute.spv.dis | 703 ------------------ .../spirv/valid/global_barrier.spv.dis | 395 ---------- .../program/spirv/valid/iriw-acq-rel.spv.dis | 575 -------------- .../program/spirv/valid/iriw-acq.spv.dis | 575 -------------- .../program/spirv/valid/iriw-results.spv.dis | 319 -------- .../spirv/valid/iriw-sequentialized.spv.dis | 557 -------------- .../parsers/program/spirv/valid/iriw.spv.dis | 577 -------------- .../program/spirv/valid/isa2-acq.spv.dis | 550 -------------- .../program/spirv/valid/isa2-addr-dep.spv.dis | 551 -------------- .../spirv/valid/isa2-rel-data-acq.spv.dis | 550 -------------- .../spirv/valid/isa2-rel-data-addr.spv.dis | 551 -------------- .../program/spirv/valid/isa2-results.spv.dis | 223 ------ .../parsers/program/spirv/valid/isa2.spv.dis | 549 -------------- .../spirv/valid/load-buffer-acq-rel.spv.dis | 525 ------------- .../spirv/valid/load-buffer-cond.spv.dis | 537 ------------- .../spirv/valid/load-buffer-results.spv.dis | 192 ----- .../program/spirv/valid/load-buffer.spv.dis | 524 ------------- .../valid/message-passing-results.spv.dis | 192 ----- .../spirv/valid/message-passing.spv.dis | 524 ------------- .../spirv/valid/mp-memory-operands.spv.dis | 94 +++ .../spirv/valid/primitive_barrier.spv.dis | 338 --------- .../valid/rr-mem-device-scope-device.spv.dis | 525 ------------- .../program/spirv/valid/rr-results.spv.dis | 240 ------ .../program/spirv/valid/shader.spv.dis | 123 --- .../spirv/valid/store-buffer-acq-rel.spv.dis | 525 ------------- .../spirv/valid/store-buffer-results.spv.dis | 192 ----- .../valid/store-buffer-rmw-acq-rel.spv.dis | 525 ------------- .../spirv/valid/store-buffer-rmw.spv.dis | 524 ------------- .../program/spirv/valid/store-buffer.spv.dis | 524 ------------- .../program/spirv/valid/wrc-acq.spv.dis | 541 -------------- .../program/spirv/valid/wrc-addr-dep.spv.dis | 542 -------------- .../program/spirv/valid/wrc-rel-acq.spv.dis | 534 ------------- .../program/spirv/valid/wrc-results.spv.dis | 224 ------ .../parsers/program/spirv/valid/wrc.spv.dis | 540 -------------- 56 files changed, 585 insertions(+), 16354 deletions(-) rename dartagnan/src/test/resources/parsers/program/spirv/invalid/{ => control-flow}/malformed-loop-merge-true-label.spv.dis (78%) rename dartagnan/src/test/resources/parsers/program/spirv/invalid/{ => control-flow}/malformed-loop-merge.spv.dis (78%) rename dartagnan/src/test/resources/parsers/program/spirv/invalid/{ => control-flow}/malformed-selection-merge-label.spv.dis (80%) rename dartagnan/src/test/resources/parsers/program/spirv/invalid/{ => control-flow}/malformed-selection-merge.spv.dis (80%) create mode 100644 dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/illegal-parameter-order-1.spv.dis create mode 100644 dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/illegal-parameter-order-2.spv.dis create mode 100644 dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/missing-alignment.spv.dis create mode 100644 dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/missing-scope-1.spv.dis create mode 100644 dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/missing-scope-2.spv.dis create mode 100644 dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/unnecessary-alignment-1.spv.dis create mode 100644 dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/unnecessary-alignment-2.spv.dis create mode 100644 dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/unnecessary-alignment-3.spv.dis create mode 100644 dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/unnecessary-scope-1.spv.dis create mode 100644 dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/unnecessary-scope-2.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/2+2-write-rel.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/2+2-write-results.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/2+2-write.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/compute.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/global_barrier.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/iriw-acq-rel.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/iriw-acq.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/iriw-results.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/iriw-sequentialized.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/iriw.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/isa2-acq.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/isa2-addr-dep.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/isa2-rel-data-acq.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/isa2-rel-data-addr.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/isa2-results.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/isa2.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/load-buffer-acq-rel.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/load-buffer-cond.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/load-buffer-results.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/load-buffer.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/message-passing-results.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/message-passing.spv.dis create mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/mp-memory-operands.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/primitive_barrier.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/rr-mem-device-scope-device.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/rr-results.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/shader.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/store-buffer-acq-rel.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/store-buffer-results.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/store-buffer-rmw-acq-rel.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/store-buffer-rmw.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/store-buffer.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/wrc-acq.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/wrc-addr-dep.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/wrc-rel-acq.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/wrc-results.spv.dis delete mode 100644 dartagnan/src/test/resources/parsers/program/spirv/valid/wrc.spv.dis diff --git a/dartagnan/src/main/antlr4/Spirv.g4 b/dartagnan/src/main/antlr4/Spirv.g4 index c0abbd8c14..8369af2c02 100644 --- a/dartagnan/src/main/antlr4/Spirv.g4 +++ b/dartagnan/src/main/antlr4/Spirv.g4 @@ -3231,13 +3231,17 @@ loopControl ; memoryAccess - : AliasScopeINTELMask idRef - | Aligned literalInteger - | MakePointerAvailable idScope - | MakePointerAvailableKHR idScope - | MakePointerVisible idScope - | MakePointerVisibleKHR idScope - | NoAliasINTELMask idRef + : memoryAccessTag (Pipe memoryAccessTag)* literalInteger? idRef* + ; + +memoryAccessTag + : AliasScopeINTELMask + | Aligned + | MakePointerAvailable + | MakePointerAvailableKHR + | MakePointerVisible + | MakePointerVisibleKHR + | NoAliasINTELMask | NonPrivatePointer | NonPrivatePointerKHR | None diff --git a/dartagnan/src/main/java/com/dat3m/dartagnan/parsers/program/visitors/spirv/VisitorOpsMemory.java b/dartagnan/src/main/java/com/dat3m/dartagnan/parsers/program/visitors/spirv/VisitorOpsMemory.java index 09078282dc..7ed7551cac 100644 --- a/dartagnan/src/main/java/com/dat3m/dartagnan/parsers/program/visitors/spirv/VisitorOpsMemory.java +++ b/dartagnan/src/main/java/com/dat3m/dartagnan/parsers/program/visitors/spirv/VisitorOpsMemory.java @@ -21,10 +21,9 @@ import com.dat3m.dartagnan.program.event.Event; import com.dat3m.dartagnan.program.event.EventFactory; import com.dat3m.dartagnan.program.event.Tag; -import org.antlr.v4.runtime.tree.ParseTree; +import org.antlr.v4.runtime.RuleContext; import java.util.ArrayList; -import java.util.HashSet; import java.util.List; import java.util.Set; @@ -187,32 +186,14 @@ private void visitOpAccessChain(String id, String typeId, String baseId, } private Set parseMemoryAccessTags(SpirvParser.MemoryAccessContext ctx) { - if (ctx == null || ctx.None() != null) { - return Set.of(); + if (ctx != null) { + List operands = ctx.memoryAccessTag().stream().map(RuleContext::getText).toList(); + Integer alignment = ctx.literalInteger() != null ? Integer.parseInt(ctx.literalInteger().getText()) : null; + List paramIds = ctx.idRef().stream().map(RuleContext::getText).toList(); + List params = ctx.idRef().stream().map(c -> builder.getExpression(c.getText())).toList(); + return HelperTags.parseMemoryOperandsTags(operands, alignment, paramIds, params); } - if (ctx.Volatile() != null) { - return Set.of(Tag.Spirv.MEM_VOLATILE); - } - if (ctx.Nontemporal() != null) { - return Set.of(Tag.Spirv.MEM_NON_TEMPORAL); - } - if (ctx.NonPrivatePointer() != null || ctx.NonPrivatePointerKHR() != null) { - return Set.of(Tag.Spirv.MEM_NON_PRIVATE); - } - if (ctx.idScope() != null) { - String scopeId = ctx.idScope().getText(); - String scopeTag = HelperTags.parseScope(scopeId, builder.getExpression(scopeId)); - Set tags = new HashSet<>(Set.of(scopeTag, Tag.Spirv.MEM_NON_PRIVATE)); - if (ctx.MakePointerAvailable() != null || ctx.MakePointerAvailableKHR() != null) { - tags.add(Tag.Spirv.MEM_AVAILABLE); - } - if (ctx.MakePointerVisible() != null || ctx.MakePointerVisibleKHR() != null) { - tags.add(Tag.Spirv.MEM_VISIBLE); - } - return tags; - } - throw new ParsingException("Unsupported memory access tag '%s'", - String.join(" ", ctx.children.stream().map(ParseTree::getText).toList())); + return Set.of(); } private String getScope(String storageClass) { diff --git a/dartagnan/src/main/java/com/dat3m/dartagnan/parsers/program/visitors/spirv/helpers/HelperTags.java b/dartagnan/src/main/java/com/dat3m/dartagnan/parsers/program/visitors/spirv/helpers/HelperTags.java index 86859ea2ca..5f56034049 100644 --- a/dartagnan/src/main/java/com/dat3m/dartagnan/parsers/program/visitors/spirv/helpers/HelperTags.java +++ b/dartagnan/src/main/java/com/dat3m/dartagnan/parsers/program/visitors/spirv/helpers/HelperTags.java @@ -3,6 +3,7 @@ import com.dat3m.dartagnan.exception.ParsingException; import com.dat3m.dartagnan.expression.Expression; import com.dat3m.dartagnan.expression.integers.IntLiteral; +import com.dat3m.dartagnan.program.event.Tag; import com.google.common.collect.Sets; import java.util.*; @@ -37,6 +38,89 @@ public static Set parseMemorySemanticsTags(String id, Expression expr) { return tags; } + public static Set parseMemoryOperandsTags(List operands, Integer alignment, + List paramIds, List params) { + List tagList = parseTagList(operands, alignment); + Set tags = new HashSet<>(tagList); + if (tagList.size() != tags.size()) { + throwDuplicatesException(operands); + } + tags = parseMemoryAccessParameters(operands, tags, params, paramIds); + if (tags.contains(Tag.Spirv.MEM_VISIBLE) && tags.contains(Tag.Spirv.MEM_AVAILABLE)) { + // TODO: This is a legal combination for OpCopyMemory and OpCopyMemorySized. + // Refactor spirv tags to have av_scope and vis_scope. + throw new ParsingException("Unsupported combination of memory operands '%s'", + String.join("|", operands)); + } + return tags; + } + + private static List parseTagList(List operands, Integer alignment) { + boolean isNone = false; + boolean isAligned = false; + List tagList = new LinkedList<>(); + for (String tag : operands) { + switch (tag) { + case "None" -> { + if (isNone) { + throwDuplicatesException(operands); + } + isNone = true; + } + case "Volatile" -> tagList.add(Tag.Spirv.MEM_VOLATILE); + case "Aligned" -> { + if (isAligned) { + throwDuplicatesException(operands); + } + isAligned = true; + } + case "Nontemporal" -> tagList.add(Tag.Spirv.MEM_NON_TEMPORAL); + case "MakePointerAvailable", "MakePointerAvailableKHR" -> tagList.add(Tag.Spirv.MEM_AVAILABLE); + case "MakePointerVisible", "MakePointerVisibleKHR" -> tagList.add(Tag.Spirv.MEM_VISIBLE); + case "NonPrivatePointer", "NonPrivatePointerKHR" -> tagList.add(Tag.Spirv.MEM_NON_PRIVATE); + case "AliasScopeINTELMask", "NoAliasINTELMask" -> + throw new ParsingException("Unsupported memory operand '%s'", tag); + default -> throw new ParsingException("Unexpected memory operand '%s'", tag); + } + } + if (isNone && (isAligned || !tagList.isEmpty())) { + throw new ParsingException("Memory operand 'None' cannot be combined with other operands"); + } + if (isAligned && alignment == null || !isAligned && alignment != null) { + throwIllegalParametersException(operands); + } + // TODO: Implement proper support for alignment + return tagList; + } + + private static Set parseMemoryAccessParameters(List operands, Set tags, List parameters, List parameterIds) { + int i = 0; + for (String tag : List.of(Tag.Spirv.MEM_AVAILABLE, Tag.Spirv.MEM_VISIBLE)) { + if (tags.contains(tag)) { + if (parameters.size() <= i) { + throwIllegalParametersException(operands); + } + String scopeTag = HelperTags.parseScope(parameterIds.get(i), parameters.get(i)); + tags.add(scopeTag); + i++; + } + } + if (i != parameters.size()) { + throwIllegalParametersException(operands); + } + return tags; + } + + private static void throwDuplicatesException(List operands) { + throw new ParsingException("Duplicated memory operands definition(s) in '%s'", + String.join("|", operands)); + } + + private static void throwIllegalParametersException(List operands) { + throw new ParsingException("Illegal parameter(s) in memory operands definition '%s'", + String.join("|", operands)); + } + public static String parseScope(String id, Expression expr) { int value = getIntValue(id, expr); if (value >= 0 && value < scopes.size()) { diff --git a/dartagnan/src/test/java/com/dat3m/dartagnan/parsers/program/ParserSpirvTest.java b/dartagnan/src/test/java/com/dat3m/dartagnan/parsers/program/ParserSpirvTest.java index 2fd4f4e69b..220f061eb9 100644 --- a/dartagnan/src/test/java/com/dat3m/dartagnan/parsers/program/ParserSpirvTest.java +++ b/dartagnan/src/test/java/com/dat3m/dartagnan/parsers/program/ParserSpirvTest.java @@ -17,7 +17,35 @@ public class ParserSpirvTest { @Test public void testParsingProgram() throws IOException { - String path = Paths.get(getTestResourcePath("parsers/program/spirv/valid/fibonacci.spv.dis")).toString(); + doTestParsingValidProgram("fibonacci.spv.dis"); + doTestParsingValidProgram("mp-memory-operands.spv.dis"); + } + + @Test + public void testInvalidControlFlow() throws IOException { + String error = "Unexpected operation 'OpLogicalNot'"; + doTestParsingInvalidProgram("control-flow/malformed-selection-merge-label.spv.dis", error); + doTestParsingInvalidProgram("control-flow/malformed-selection-merge.spv.dis", error); + doTestParsingInvalidProgram("control-flow/malformed-loop-merge.spv.dis", error); + doTestParsingInvalidProgram("control-flow/malformed-loop-merge-true-label.spv.dis", error); + } + + @Test + public void testInvalidMemoryOperands() throws IOException { + doTestParsingInvalidProgram("memory-operands/illegal-parameter-order-1.spv.dis", null); + doTestParsingInvalidProgram("memory-operands/illegal-parameter-order-2.spv.dis", null); + doTestParsingInvalidProgram("memory-operands/missing-alignment.spv.dis", null); + doTestParsingInvalidProgram("memory-operands/missing-scope-1.spv.dis", null); + doTestParsingInvalidProgram("memory-operands/missing-scope-2.spv.dis", null); + doTestParsingInvalidProgram("memory-operands/unnecessary-alignment-1.spv.dis", null); + doTestParsingInvalidProgram("memory-operands/unnecessary-alignment-2.spv.dis", null); + doTestParsingInvalidProgram("memory-operands/unnecessary-alignment-3.spv.dis", null); + doTestParsingInvalidProgram("memory-operands/unnecessary-scope-1.spv.dis", null); + doTestParsingInvalidProgram("memory-operands/unnecessary-scope-2.spv.dis", null); + } + + private void doTestParsingValidProgram(String file) throws IOException { + String path = Paths.get(getTestResourcePath("parsers/program/spirv/valid/" + file)).toString(); try (FileInputStream stream = new FileInputStream(path)) { CharStream charStream = CharStreams.fromStream(stream); ParserSpirv parser = new ParserSpirv(); @@ -26,15 +54,7 @@ public void testParsingProgram() throws IOException { } } - @Test - public void testParsingInvalidProgram() throws IOException { - doTestParsingInvalidProgram("malformed-selection-merge-label.spv.dis"); - doTestParsingInvalidProgram("malformed-selection-merge.spv.dis"); - doTestParsingInvalidProgram("malformed-loop-merge.spv.dis"); - doTestParsingInvalidProgram("malformed-loop-merge-true-label.spv.dis"); - } - - private void doTestParsingInvalidProgram(String file) throws IOException { + private void doTestParsingInvalidProgram(String file, String error) throws IOException { String path = Paths.get(getTestResourcePath("parsers/program/spirv/invalid/" + file)).toString(); try (FileInputStream stream = new FileInputStream(path)) { CharStream charStream = CharStreams.fromStream(stream); @@ -43,7 +63,9 @@ private void doTestParsingInvalidProgram(String file) throws IOException { parser.parse(charStream); fail("Should throw exception"); } catch (ParsingException e) { - assertEquals("Unexpected operation 'OpLogicalNot'", e.getMessage()); + if (error != null) { + assertEquals(error, e.getMessage()); + } } } } diff --git a/dartagnan/src/test/java/com/dat3m/dartagnan/parsers/program/visitors/spirv/helpers/HelperTagsTest.java b/dartagnan/src/test/java/com/dat3m/dartagnan/parsers/program/visitors/spirv/helpers/HelperTagsTest.java index b8d6f33754..68a7b951e9 100644 --- a/dartagnan/src/test/java/com/dat3m/dartagnan/parsers/program/visitors/spirv/helpers/HelperTagsTest.java +++ b/dartagnan/src/test/java/com/dat3m/dartagnan/parsers/program/visitors/spirv/helpers/HelperTagsTest.java @@ -7,11 +7,12 @@ import com.dat3m.dartagnan.expression.type.TypeFactory; import org.junit.Test; +import java.util.List; import java.util.Set; +import java.util.stream.IntStream; import static com.dat3m.dartagnan.program.event.Tag.Spirv.*; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; +import static org.junit.Assert.*; public class HelperTagsTest { @@ -122,4 +123,154 @@ private void doTestInvalidSemantics(int input, String error) { assertEquals(error, e.getMessage()); } } + + @Test + public void testValidMemoryOperands() { + // Empty + doTestValidMemoryOperands(Set.of(), "", null, List.of()); + doTestValidMemoryOperands(Set.of(), "None", null, List.of()); + + // Non-parametrized + doTestValidMemoryOperands(Set.of(MEM_VOLATILE), "Volatile", null, List.of()); + doTestValidMemoryOperands(Set.of(MEM_NON_TEMPORAL), "Nontemporal", null, List.of()); + doTestValidMemoryOperands(Set.of(MEM_NON_PRIVATE), "NonPrivatePointer", null, List.of()); + doTestValidMemoryOperands(Set.of(MEM_VOLATILE, MEM_NON_TEMPORAL, MEM_NON_PRIVATE), + "Volatile|Nontemporal|NonPrivatePointer", null, List.of()); + doTestValidMemoryOperands(Set.of(MEM_VOLATILE, MEM_NON_TEMPORAL, MEM_NON_PRIVATE), + "NonPrivatePointer|Nontemporal|Volatile", null, List.of()); + + // Aligned + doTestValidMemoryOperands(Set.of(), "Aligned", 4, List.of()); + doTestValidMemoryOperands(Set.of(), "Aligned", 8, List.of()); + doTestValidMemoryOperands(Set.of(MEM_NON_PRIVATE), "NonPrivatePointer|Aligned", 4, List.of()); + doTestValidMemoryOperands(Set.of(MEM_NON_TEMPORAL, MEM_VISIBLE, DEVICE), + "Nontemporal|Aligned|MakePointerVisible", 4, List.of(1)); + + // Availability-Visibility + doTestValidMemoryOperands(Set.of(MEM_NON_PRIVATE, MEM_VISIBLE, DEVICE), + "NonPrivatePointer|MakePointerVisible", null, List.of(1)); + doTestValidMemoryOperands(Set.of(MEM_NON_PRIVATE, MEM_VISIBLE, DEVICE), + "NonPrivatePointer|Aligned|MakePointerVisible", 4, List.of(1)); + doTestValidMemoryOperands(Set.of(MEM_VOLATILE, MEM_NON_TEMPORAL, MEM_NON_PRIVATE, MEM_VISIBLE, DEVICE), + "Volatile|Aligned|Nontemporal|NonPrivatePointer|MakePointerVisible", 4, List.of(1)); + // TODO: Uncomment after implementing combined av-vis operands + //doTestValidMemoryOperands(Set.of(MEM_AVAILABLE, MEM_VISIBLE, DEVICE), + // "MakePointerAvailable|MakePointerVisible", null, List.of(1, 2)); + } + + @Test + public void testInvalidMemoryOperands() { + // Non-parameterized + doTestInvalidMemoryOperandsParameters("None", 4, List.of()); + doTestInvalidMemoryOperandsParameters("Volatile", null, List.of(1)); + doTestInvalidMemoryOperandsParameters("Nontemporal", null, List.of(1, 2)); + doTestInvalidMemoryOperandsParameters("NonPrivatePointer", 4, List.of(1)); + doTestInvalidMemoryOperandsParameters("NonPrivatePointerKHR", 4, List.of(1, 2)); + + doTestInvalidMemoryOperandsParameters("Volatile|Nontemporal", 4, List.of()); + doTestInvalidMemoryOperandsParameters("Volatile|Nontemporal|NonPrivatePointer", null, List.of(1)); + doTestInvalidMemoryOperandsParameters("Volatile|Nontemporal|NonPrivatePointerKHR", null, List.of(1, 2)); + doTestInvalidMemoryOperandsParameters("NonPrivatePointer|Nontemporal", 4, List.of(1)); + doTestInvalidMemoryOperandsParameters("NonPrivatePointerKHR|Nontemporal|Volatile", 4, List.of(1, 2)); + + // Aligned + doTestInvalidMemoryOperandsParameters("Aligned", null, List.of()); + doTestInvalidMemoryOperandsParameters("Aligned", null, List.of(1)); + doTestInvalidMemoryOperandsParameters("Aligned", null, List.of(1, 2)); + doTestInvalidMemoryOperandsParameters("Aligned", 4, List.of(1)); + doTestInvalidMemoryOperandsParameters("Aligned", 4, List.of(1, 2)); + + doTestInvalidMemoryOperandsParameters("Aligned|Volatile", null, List.of()); + doTestInvalidMemoryOperandsParameters("Volatile|Aligned", null, List.of(1)); + doTestInvalidMemoryOperandsParameters("Aligned|MakePointerVisible", null, List.of(1)); + doTestInvalidMemoryOperandsParameters("Aligned|NonPrivatePointer|MakePointerVisible", null, List.of(1)); + + // Availability-Visibility + doTestInvalidMemoryOperandsParameters("MakePointerVisible", null, List.of()); + doTestInvalidMemoryOperandsParameters("MakePointerVisible", 4, List.of()); + doTestInvalidMemoryOperandsParameters("MakePointerVisible", null, List.of(1, 2)); + doTestInvalidMemoryOperandsParameters("MakePointerAvailable", null, List.of()); + doTestInvalidMemoryOperandsParameters("MakePointerAvailable", 4, List.of()); + doTestInvalidMemoryOperandsParameters("MakePointerAvailable", null, List.of(1, 2)); + + doTestInvalidMemoryOperandsParameters("NonPrivatePointer|MakePointerAvailable", null, List.of()); + doTestInvalidMemoryOperandsParameters("Aligned|NonPrivatePointer|MakePointerAvailable", 4, List.of(1, 2)); + doTestInvalidMemoryOperandsParameters("MakePointerAvailable|MakePointerVisible", null, List.of(1)); + doTestInvalidMemoryOperandsParameters("MakePointerAvailable|MakePointerVisible", null, List.of(1, 1, 1)); + } + + @Test + public void testInvalidMemoryOperandsCombinedNone() { + doTestInvalidMemoryOperandsCombinedNone("None|Volatile", null, List.of()); + doTestInvalidMemoryOperandsCombinedNone("Volatile|None", null, List.of()); + doTestInvalidMemoryOperandsCombinedNone("None|Aligned", 4, List.of()); + doTestInvalidMemoryOperandsCombinedNone("Aligned|None", 4, List.of()); + doTestInvalidMemoryOperandsCombinedNone("None|MakePointerVisible", null, List.of(1)); + doTestInvalidMemoryOperandsCombinedNone("MakePointerVisible|None", null, List.of(1)); + doTestInvalidMemoryOperandsCombinedNone("None|Aligned|MakePointerVisible", 4, List.of(1)); + doTestInvalidMemoryOperandsCombinedNone("Aligned|None|MakePointerVisible", 4, List.of(1)); + doTestInvalidMemoryOperandsCombinedNone("Aligned|MakePointerVisible|None", 4, List.of(1)); + } + + @Test + public void testInvalidMemoryOperandsDuplicate() { + // Trivial duplicates + doTestInvalidMemoryOperandsDuplicate("None|None", null, List.of()); + doTestInvalidMemoryOperandsDuplicate("Volatile|Volatile", null, List.of()); + doTestInvalidMemoryOperandsDuplicate("Volatile|Nontemporal|Volatile|Nontemporal", null, List.of()); + doTestInvalidMemoryOperandsDuplicate("Aligned|Aligned", 4, List.of()); + doTestInvalidMemoryOperandsDuplicate("MakePointerVisible|MakePointerVisible", null, List.of(1)); + doTestInvalidMemoryOperandsDuplicate("MakePointerVisible|MakePointerVisible",null, List.of(1, 2)); + + // KHR duplicates + doTestInvalidMemoryOperandsDuplicate("NonPrivatePointer|NonPrivatePointerKHR", null, List.of()); + doTestInvalidMemoryOperandsDuplicate("MakePointerVisible|MakePointerVisibleKHR", null, List.of(1)); + doTestInvalidMemoryOperandsDuplicate("MakePointerVisible|MakePointerVisibleKHR", null, List.of(1, 2)); + doTestInvalidMemoryOperandsDuplicate("MakePointerAvailable|MakePointerAvailableKHR",null, List.of(1)); + doTestInvalidMemoryOperandsDuplicate("MakePointerAvailable|MakePointerAvailableKHR", null, List.of(1, 2)); + } + + private void doTestInvalidMemoryOperandsParameters(String operand, Integer alignment, List params) { + String error = String.format("Illegal parameter(s) in memory operands definition '%s'", operand); + doTestInvalidMemoryOperands(error, operand, alignment, params); + } + + private void doTestInvalidMemoryOperandsDuplicate(String operand, Integer alignment, List params) { + String error = String.format("Duplicated memory operands definition(s) in '%s'", operand); + doTestInvalidMemoryOperands(error, operand, alignment, params); + } + + private void doTestInvalidMemoryOperandsCombinedNone(String operand, Integer alignment, List params) { + String error = "Memory operand 'None' cannot be combined with other operands"; + doTestInvalidMemoryOperands(error, operand, alignment, params); + } + + private void doTestInvalidMemoryOperands(String error, String operands, Integer alignment, List params) { + // given + List operandsList = operands.isEmpty() ? List.of() : List.of(operands.split("\\|")); + List paramIds = IntStream.range(0, params.size()).boxed().map(idx -> "param_" + idx).toList(); + List paramValues = params.stream().map(p -> (Expression) expressions.makeValue(p, archType)).toList(); + + try { + // when + HelperTags.parseMemoryOperandsTags(operandsList, alignment, paramIds, paramValues); + fail("Should throw exception"); + } catch (Exception e) { + // then + assertEquals(error, e.getMessage()); + } + } + + private void doTestValidMemoryOperands(Set expected, String operands, Integer alignment, List params) { + // given + List operandsList = operands.isEmpty() ? List.of() : List.of(operands.split("\\|")); + List paramIds = IntStream.range(0, params.size()).boxed().map(idx -> "param_" + idx).toList(); + List paramValues = params.stream().map(p -> (Expression) expressions.makeValue(p, archType)).toList(); + + // when + Set actual = HelperTags.parseMemoryOperandsTags(operandsList, alignment, paramIds, paramValues); + + // then + assertEquals(expected, actual); + } } diff --git a/dartagnan/src/test/resources/parsers/program/spirv/invalid/malformed-loop-merge-true-label.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/invalid/control-flow/malformed-loop-merge-true-label.spv.dis similarity index 78% rename from dartagnan/src/test/resources/parsers/program/spirv/invalid/malformed-loop-merge-true-label.spv.dis rename to dartagnan/src/test/resources/parsers/program/spirv/invalid/control-flow/malformed-loop-merge-true-label.spv.dis index cd4f3d23eb..b06a0674b1 100644 --- a/dartagnan/src/test/resources/parsers/program/spirv/invalid/malformed-loop-merge-true-label.spv.dis +++ b/dartagnan/src/test/resources/parsers/program/spirv/invalid/control-flow/malformed-loop-merge-true-label.spv.dis @@ -2,8 +2,9 @@ ; Version: 1.0 ; Schema: 0 OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %ids + OpCapability VulkanMemoryModel + OpMemoryModel Logical Vulkan + OpEntryPoint GLCompute %main "main" OpSource GLSL 450 %void = OpTypeVoid %bool = OpTypeBool diff --git a/dartagnan/src/test/resources/parsers/program/spirv/invalid/malformed-loop-merge.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/invalid/control-flow/malformed-loop-merge.spv.dis similarity index 78% rename from dartagnan/src/test/resources/parsers/program/spirv/invalid/malformed-loop-merge.spv.dis rename to dartagnan/src/test/resources/parsers/program/spirv/invalid/control-flow/malformed-loop-merge.spv.dis index 0d549158b0..890f3d888d 100644 --- a/dartagnan/src/test/resources/parsers/program/spirv/invalid/malformed-loop-merge.spv.dis +++ b/dartagnan/src/test/resources/parsers/program/spirv/invalid/control-flow/malformed-loop-merge.spv.dis @@ -2,8 +2,9 @@ ; Version: 1.0 ; Schema: 0 OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %ids + OpCapability VulkanMemoryModel + OpMemoryModel Logical Vulkan + OpEntryPoint GLCompute %main "main" OpSource GLSL 450 %void = OpTypeVoid %bool = OpTypeBool diff --git a/dartagnan/src/test/resources/parsers/program/spirv/invalid/malformed-selection-merge-label.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/invalid/control-flow/malformed-selection-merge-label.spv.dis similarity index 80% rename from dartagnan/src/test/resources/parsers/program/spirv/invalid/malformed-selection-merge-label.spv.dis rename to dartagnan/src/test/resources/parsers/program/spirv/invalid/control-flow/malformed-selection-merge-label.spv.dis index b842c823a7..65b2c40ef2 100644 --- a/dartagnan/src/test/resources/parsers/program/spirv/invalid/malformed-selection-merge-label.spv.dis +++ b/dartagnan/src/test/resources/parsers/program/spirv/invalid/control-flow/malformed-selection-merge-label.spv.dis @@ -2,8 +2,9 @@ ; Version: 1.0 ; Schema: 0 OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %ids + OpCapability VulkanMemoryModel + OpMemoryModel Logical Vulkan + OpEntryPoint GLCompute %main "main" OpSource GLSL 450 %void = OpTypeVoid %bool = OpTypeBool diff --git a/dartagnan/src/test/resources/parsers/program/spirv/invalid/malformed-selection-merge.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/invalid/control-flow/malformed-selection-merge.spv.dis similarity index 80% rename from dartagnan/src/test/resources/parsers/program/spirv/invalid/malformed-selection-merge.spv.dis rename to dartagnan/src/test/resources/parsers/program/spirv/invalid/control-flow/malformed-selection-merge.spv.dis index d16096c604..af21248ebb 100644 --- a/dartagnan/src/test/resources/parsers/program/spirv/invalid/malformed-selection-merge.spv.dis +++ b/dartagnan/src/test/resources/parsers/program/spirv/invalid/control-flow/malformed-selection-merge.spv.dis @@ -2,8 +2,9 @@ ; Version: 1.0 ; Schema: 0 OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %ids + OpCapability VulkanMemoryModel + OpMemoryModel Logical Vulkan + OpEntryPoint GLCompute %main "main" OpSource GLSL 450 %void = OpTypeVoid %bool = OpTypeBool diff --git a/dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/illegal-parameter-order-1.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/illegal-parameter-order-1.spv.dis new file mode 100644 index 0000000000..28674d8637 --- /dev/null +++ b/dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/illegal-parameter-order-1.spv.dis @@ -0,0 +1,19 @@ +; SPIR-V +; Version: 1.0 +; Schema: 0 + OpCapability Shader + OpCapability VulkanMemoryModel + OpMemoryModel Logical Vulkan + OpEntryPoint GLCompute %main "main" + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %ptr_uint = OpTypePointer Uniform %uint + %func = OpTypeFunction %void + %uint_1 = OpConstant %uint 1 + %var = OpVariable %ptr_uint Uniform + %main = OpFunction %void None %func + %label = OpLabel + OpStore %var %uint_1 Aligned|MakePointerAvailable|NonPrivatePointer %uint_1 4 + %result = OpLoad %uint %var Aligned|MakePointerVisible|NonPrivatePointer %uint_1 4 + OpReturn + OpFunctionEnd diff --git a/dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/illegal-parameter-order-2.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/illegal-parameter-order-2.spv.dis new file mode 100644 index 0000000000..6db9f89965 --- /dev/null +++ b/dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/illegal-parameter-order-2.spv.dis @@ -0,0 +1,19 @@ +; SPIR-V +; Version: 1.0 +; Schema: 0 + OpCapability Shader + OpCapability VulkanMemoryModel + OpMemoryModel Logical Vulkan + OpEntryPoint GLCompute %main "main" + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %ptr_uint = OpTypePointer Uniform %uint + %func = OpTypeFunction %void + %uint_1 = OpConstant %uint 1 + %var = OpVariable %ptr_uint Uniform + %main = OpFunction %void None %func + %label = OpLabel + OpStore %var %uint_1 MakePointerAvailable|Aligned|NonPrivatePointer %uint_1 4 + %result = OpLoad %uint %var MakePointerVisible|Aligned|NonPrivatePointer %uint_1 4 + OpReturn + OpFunctionEnd diff --git a/dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/missing-alignment.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/missing-alignment.spv.dis new file mode 100644 index 0000000000..7280d9eb7f --- /dev/null +++ b/dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/missing-alignment.spv.dis @@ -0,0 +1,19 @@ +; SPIR-V +; Version: 1.0 +; Schema: 0 + OpCapability Shader + OpCapability VulkanMemoryModel + OpMemoryModel Logical Vulkan + OpEntryPoint GLCompute %main "main" + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %ptr_uint = OpTypePointer Uniform %uint + %func = OpTypeFunction %void + %uint_1 = OpConstant %uint 1 + %var = OpVariable %ptr_uint Uniform + %main = OpFunction %void None %func + %label = OpLabel + OpStore %var %uint_1 Aligned + %result = OpLoad %uint %var Aligned + OpReturn + OpFunctionEnd diff --git a/dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/missing-scope-1.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/missing-scope-1.spv.dis new file mode 100644 index 0000000000..8cf6f3ae74 --- /dev/null +++ b/dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/missing-scope-1.spv.dis @@ -0,0 +1,19 @@ +; SPIR-V +; Version: 1.0 +; Schema: 0 + OpCapability Shader + OpCapability VulkanMemoryModel + OpMemoryModel Logical Vulkan + OpEntryPoint GLCompute %main "main" + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %ptr_uint = OpTypePointer Uniform %uint + %func = OpTypeFunction %void + %uint_1 = OpConstant %uint 1 + %var = OpVariable %ptr_uint Uniform + %main = OpFunction %void None %func + %label = OpLabel + OpStore %var %uint_1 MakePointerAvailable + %result = OpLoad %uint %var MakePointerVisible + OpReturn + OpFunctionEnd diff --git a/dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/missing-scope-2.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/missing-scope-2.spv.dis new file mode 100644 index 0000000000..0ff2b427c6 --- /dev/null +++ b/dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/missing-scope-2.spv.dis @@ -0,0 +1,19 @@ +; SPIR-V +; Version: 1.0 +; Schema: 0 + OpCapability Shader + OpCapability VulkanMemoryModel + OpMemoryModel Logical Vulkan + OpEntryPoint GLCompute %main "main" + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %ptr_uint = OpTypePointer Uniform %uint + %func = OpTypeFunction %void + %uint_1 = OpConstant %uint 1 + %var = OpVariable %ptr_uint Uniform + %main = OpFunction %void None %func + %label = OpLabel + OpStore %var %uint_1 MakePointerAvailable|NonPrivatePointer + %result = OpLoad %uint %var MakePointerVisible|NonPrivatePointer + OpReturn + OpFunctionEnd diff --git a/dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/unnecessary-alignment-1.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/unnecessary-alignment-1.spv.dis new file mode 100644 index 0000000000..9a493ec29c --- /dev/null +++ b/dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/unnecessary-alignment-1.spv.dis @@ -0,0 +1,19 @@ +; SPIR-V +; Version: 1.0 +; Schema: 0 + OpCapability Shader + OpCapability VulkanMemoryModel + OpMemoryModel Logical Vulkan + OpEntryPoint GLCompute %main "main" + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %ptr_uint = OpTypePointer Uniform %uint + %func = OpTypeFunction %void + %uint_1 = OpConstant %uint 1 + %var = OpVariable %ptr_uint Uniform + %main = OpFunction %void None %func + %label = OpLabel + OpStore %var %uint_1 NonPrivatePointer 4 + %result = OpLoad %uint %var NonPrivatePointer 4 + OpReturn + OpFunctionEnd diff --git a/dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/unnecessary-alignment-2.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/unnecessary-alignment-2.spv.dis new file mode 100644 index 0000000000..aca6ece4e8 --- /dev/null +++ b/dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/unnecessary-alignment-2.spv.dis @@ -0,0 +1,19 @@ +; SPIR-V +; Version: 1.0 +; Schema: 0 + OpCapability Shader + OpCapability VulkanMemoryModel + OpMemoryModel Logical Vulkan + OpEntryPoint GLCompute %main "main" + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %ptr_uint = OpTypePointer Uniform %uint + %func = OpTypeFunction %void + %uint_1 = OpConstant %uint 1 + %var = OpVariable %ptr_uint Uniform + %main = OpFunction %void None %func + %label = OpLabel + OpStore %var %uint_1 Aligned 4 8 + %result = OpLoad %uint %var Aligned 4 8 + OpReturn + OpFunctionEnd diff --git a/dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/unnecessary-alignment-3.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/unnecessary-alignment-3.spv.dis new file mode 100644 index 0000000000..665faf1e46 --- /dev/null +++ b/dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/unnecessary-alignment-3.spv.dis @@ -0,0 +1,19 @@ +; SPIR-V +; Version: 1.0 +; Schema: 0 + OpCapability Shader + OpCapability VulkanMemoryModel + OpMemoryModel Logical Vulkan + OpEntryPoint GLCompute %main "main" + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %ptr_uint = OpTypePointer Uniform %uint + %func = OpTypeFunction %void + %uint_1 = OpConstant %uint 1 + %var = OpVariable %ptr_uint Uniform + %main = OpFunction %void None %func + %label = OpLabel + OpStore %var %uint_1 Aligned|MakePointerAvailable 4 8 %uint_1 + %result = OpLoad %uint %var Aligned|MakePointerVisible 4 8 %uint_1 + OpReturn + OpFunctionEnd diff --git a/dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/unnecessary-scope-1.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/unnecessary-scope-1.spv.dis new file mode 100644 index 0000000000..7a913fd71a --- /dev/null +++ b/dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/unnecessary-scope-1.spv.dis @@ -0,0 +1,19 @@ +; SPIR-V +; Version: 1.0 +; Schema: 0 + OpCapability Shader + OpCapability VulkanMemoryModel + OpMemoryModel Logical Vulkan + OpEntryPoint GLCompute %main "main" + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %ptr_uint = OpTypePointer Uniform %uint + %func = OpTypeFunction %void + %uint_1 = OpConstant %uint 1 + %var = OpVariable %ptr_uint Uniform + %main = OpFunction %void None %func + %label = OpLabel + OpStore %var %uint_1 NonPrivatePointer %uint_1 + %result = OpLoad %uint %var NonPrivatePointer %uint_1 + OpReturn + OpFunctionEnd diff --git a/dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/unnecessary-scope-2.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/unnecessary-scope-2.spv.dis new file mode 100644 index 0000000000..d85779e421 --- /dev/null +++ b/dartagnan/src/test/resources/parsers/program/spirv/invalid/memory-operands/unnecessary-scope-2.spv.dis @@ -0,0 +1,19 @@ +; SPIR-V +; Version: 1.0 +; Schema: 0 + OpCapability Shader + OpCapability VulkanMemoryModel + OpMemoryModel Logical Vulkan + OpEntryPoint GLCompute %main "main" + %void = OpTypeVoid + %uint = OpTypeInt 32 0 + %ptr_uint = OpTypePointer Uniform %uint + %func = OpTypeFunction %void + %uint_1 = OpConstant %uint 1 + %var = OpVariable %ptr_uint Uniform + %main = OpFunction %void None %func + %label = OpLabel + OpStore %var %uint_1 MakePointerAvailable|NonPrivatePointer %uint_1 %uint_1 + %result = OpLoad %uint %var MakePointerVisible|NonPrivatePointer %uint_1 %uint_1 + OpReturn + OpFunctionEnd diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/2+2-write-rel.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/2+2-write-rel.spv.dis deleted file mode 100644 index 9a68f28866..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/2+2-write-rel.spv.dis +++ /dev/null @@ -1,521 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 472 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %445 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %27 "litmus_test" %gl_LocalInvocationID %gl_WorkGroupID - OpSource OpenCL_C 200 - %446 = OpString "litmus_test" - %448 = OpString "test_locations" - %451 = OpString "read_results" - %454 = OpString "shuffled_workgroups" - %457 = OpString "barrier" - %460 = OpString "scratchpad" - %463 = OpString "scratch_locations" - %466 = OpString "stress_params" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_16 0 Offset 0 - OpDecorate %_struct_16 Block - OpDecorate %18 DescriptorSet 0 - OpDecorate %18 Binding 0 - OpDecorate %19 DescriptorSet 0 - OpDecorate %19 Binding 1 - OpDecorate %20 DescriptorSet 0 - OpDecorate %20 Binding 2 - OpDecorate %21 DescriptorSet 0 - OpDecorate %21 Binding 3 - OpDecorate %22 DescriptorSet 0 - OpDecorate %22 Binding 4 - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 5 - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 6 - OpDecorate %6 SpecId 0 - OpDecorate %7 SpecId 1 - OpDecorate %8 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 - %6 = OpSpecConstant %uint 1 - %7 = OpSpecConstant %uint 1 - %8 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %6 %7 %8 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_16 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_16 = OpTypePointer StorageBuffer %_struct_16 - %void = OpTypeVoid - %26 = OpTypeFunction %void -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint - %uint_9 = OpConstant %uint 9 - %bool = OpTypeBool - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 - %uint_100 = OpConstant %uint 100 -%uint_4294967295 = OpConstant %uint 4294967295 - %uint_7 = OpConstant %uint 7 - %uint_10 = OpConstant %uint 10 - %uint_8 = OpConstant %uint 8 - %uint_11 = OpConstant %uint 11 - %uint_4 = OpConstant %uint 4 - %uint_5 = OpConstant %uint 5 - %uint_6 = OpConstant %uint 6 - %uint_64 = OpConstant %uint 64 - %uint_1023 = OpConstant %uint 1023 - %false = OpConstantFalse %bool - %uint_68 = OpConstant %uint 68 - %true = OpConstantTrue %bool - %444 = OpUndef %uint - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant - %11 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input -%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input - %18 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %19 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %20 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %21 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %22 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %27 = OpFunction %void None %26 - %28 = OpLabel - %31 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %uint_0 - %32 = OpAccessChain %_ptr_StorageBuffer_uint %21 %uint_0 %uint_0 - %33 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_0 - %35 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %36 = OpLoad %uint %35 - %38 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %39 = OpLoad %uint %38 - %40 = OpIAdd %uint %39 %36 - %41 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_0 %40 - %42 = OpLoad %uint %41 - %44 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_9 - %45 = OpLoad %uint %44 - %47 = OpUGreaterThanEqual %bool %42 %45 - OpSelectionMerge %204 None - OpBranchConditional %47 %50 %204 - %50 = OpLabel - %52 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_1 - %53 = OpLoad %uint %52 - %54 = OpINotEqual %bool %53 %uint_0 - OpSelectionMerge %202 None - OpBranchConditional %54 %57 %202 - %57 = OpLabel - %59 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_2 - %60 = OpLoad %uint %59 - %62 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_3 - %63 = OpLoad %uint %62 - %64 = OpINotEqual %bool %60 %uint_0 - OpSelectionMerge %200 None - OpBranchConditional %64 %67 %200 - %67 = OpLabel - %68 = OpPhi %uint %195 %194 %uint_0 %57 - OpLoopMerge %198 %194 None - OpBranch %71 - %71 = OpLabel - %72 = OpSGreaterThanEqual %bool %63 %uint_2 - OpSelectionMerge %125 None - OpBranchConditional %72 %75 %125 - %75 = OpLabel - %76 = OpSGreaterThanEqual %bool %63 %uint_3 - OpSelectionMerge %99 None - OpBranchConditional %76 %79 %99 - %79 = OpLabel - %80 = OpIEqual %bool %63 %uint_3 - OpSelectionMerge %96 None - OpBranchConditional %80 %83 %96 - %83 = OpLabel - %84 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %85 = OpLoad %uint %84 - %86 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %87 = OpLoad %uint %86 - %88 = OpIAdd %uint %87 %85 - %89 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %88 - %90 = OpLoad %uint %89 - %91 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %90 - %92 = OpLoad %uint %91 - %94 = OpULessThanEqual %bool %92 %uint_100 - OpBranch %96 - %96 = OpLabel - %97 = OpPhi %bool %94 %83 %true %79 - OpBranch %99 - %99 = OpLabel - %100 = OpPhi %bool %97 %96 %false %75 - %101 = OpPhi %bool %false %96 %true %75 - OpSelectionMerge %122 None - OpBranchConditional %101 %104 %122 - %104 = OpLabel - %105 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %106 = OpLoad %uint %105 - %107 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %108 = OpLoad %uint %107 - %109 = OpIAdd %uint %108 %106 - %110 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %109 - %111 = OpLoad %uint %110 - %112 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %111 - %113 = OpLoad %uint %112 - %114 = OpULessThanEqual %bool %113 %uint_100 - OpSelectionMerge %119 None - OpBranchConditional %114 %117 %119 - %117 = OpLabel - OpStore %112 %68 - OpBranch %119 - %119 = OpLabel - %120 = OpPhi %bool %true %117 %100 %104 - OpBranch %122 - %122 = OpLabel - %123 = OpPhi %bool %120 %119 %100 %99 - OpBranch %125 - %125 = OpLabel - %126 = OpPhi %bool %123 %122 %false %71 - %127 = OpPhi %bool %false %122 %true %71 - OpSelectionMerge %187 None - OpBranchConditional %127 %130 %187 - %130 = OpLabel - %131 = OpSGreaterThanEqual %bool %63 %uint_1 - OpSelectionMerge %154 None - OpBranchConditional %131 %134 %154 - %134 = OpLabel - %135 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %136 = OpLoad %uint %135 - %137 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %138 = OpLoad %uint %137 - %139 = OpIAdd %uint %138 %136 - %140 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %139 - %141 = OpLoad %uint %140 - %142 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %141 - OpStore %142 %68 - %143 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %144 = OpLoad %uint %143 - %145 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %146 = OpLoad %uint %145 - %147 = OpIAdd %uint %146 %144 - %148 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %147 - %149 = OpLoad %uint %148 - %150 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %149 - %151 = OpLoad %uint %150 - %152 = OpULessThanEqual %bool %151 %uint_100 - OpBranch %154 - %154 = OpLabel - %155 = OpPhi %bool %152 %134 %126 %130 - %156 = OpPhi %bool %false %134 %true %130 - OpSelectionMerge %184 None - OpBranchConditional %156 %159 %184 - %159 = OpLabel - %160 = OpIEqual %bool %63 %uint_0 - OpSelectionMerge %182 None - OpBranchConditional %160 %163 %182 - %163 = OpLabel - %164 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %165 = OpLoad %uint %164 - %166 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %167 = OpLoad %uint %166 - %168 = OpIAdd %uint %167 %165 - %169 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %168 - %170 = OpLoad %uint %169 - %171 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %170 - OpStore %171 %68 - %172 = OpIAdd %uint %68 %uint_1 - %173 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %174 = OpLoad %uint %173 - %175 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %176 = OpLoad %uint %175 - %177 = OpIAdd %uint %176 %174 - %178 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %177 - %179 = OpLoad %uint %178 - %180 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %179 - OpStore %180 %172 - OpBranch %182 - %182 = OpLabel - OpBranch %184 - %184 = OpLabel - %185 = OpPhi %bool %true %182 %155 %154 - OpBranch %187 - %187 = OpLabel - %188 = OpPhi %bool %185 %184 %126 %125 - OpBranchConditional %188 %190 %194 - %190 = OpLabel - %191 = OpIAdd %uint %68 %uint_1 - %192 = OpUGreaterThanEqual %bool %191 %60 - OpBranch %194 - %194 = OpLabel - %195 = OpPhi %uint %191 %190 %444 %187 - %196 = OpPhi %bool %192 %190 %true %187 - OpBranchConditional %196 %198 %67 - %198 = OpLabel - OpBranch %200 - %200 = OpLabel - OpBranch %202 - %202 = OpLabel - OpBranch %204 - %204 = OpLabel - %205 = OpPhi %bool %false %202 %true %28 - OpSelectionMerge %440 None - OpBranchConditional %205 %208 %440 - %208 = OpLabel - %209 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %210 = OpCompositeExtract %uint %209 0 - %211 = OpIMul %uint %210 %45 - %212 = OpIMul %uint %210 %42 - %213 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %214 = OpLoad %uint %213 - %215 = OpIAdd %uint %212 %214 - %216 = OpIAdd %uint %42 %uint_1 - %218 = OpIAdd %uint %45 %uint_4294967295 - %219 = OpUMod %uint %214 %218 - %220 = OpIAdd %uint %216 %219 - %221 = OpUMod %uint %220 %45 - %222 = OpIMul %uint %221 %210 - %224 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_7 - %225 = OpLoad %uint %224 - %226 = OpIMul %uint %225 %214 - %227 = OpUMod %uint %226 %210 - %228 = OpIAdd %uint %227 %222 - %230 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %231 = OpLoad %uint %230 - %232 = OpShiftLeftLogical %uint %215 %uint_1 - %233 = OpIMul %uint %232 %231 - %235 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_8 - %236 = OpLoad %uint %235 - %237 = OpIMul %uint %236 %215 - %238 = OpUMod %uint %237 %211 - %239 = OpShiftLeftLogical %uint %231 %uint_1 - %240 = OpIMul %uint %239 %238 - %242 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_11 - %243 = OpLoad %uint %242 - %244 = OpIAdd %uint %240 %243 - %245 = OpIMul %uint %239 %228 - %246 = OpIMul %uint %236 %228 - %247 = OpUMod %uint %246 %211 - %248 = OpIMul %uint %239 %247 - %249 = OpIAdd %uint %248 %243 - %251 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_4 - %252 = OpLoad %uint %251 - %253 = OpINotEqual %bool %252 %uint_0 - OpSelectionMerge %400 None - OpBranchConditional %253 %256 %400 - %256 = OpLabel - %258 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_5 - %259 = OpLoad %uint %258 - %261 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_6 - %262 = OpLoad %uint %261 - %263 = OpINotEqual %bool %259 %uint_0 - OpSelectionMerge %398 None - OpBranchConditional %263 %266 %398 - %266 = OpLabel - %267 = OpPhi %uint %393 %392 %uint_0 %256 - OpLoopMerge %396 %392 None - OpBranch %270 - %270 = OpLabel - %271 = OpSGreaterThanEqual %bool %262 %uint_2 - OpSelectionMerge %323 None - OpBranchConditional %271 %274 %323 - %274 = OpLabel - %275 = OpSGreaterThanEqual %bool %262 %uint_3 - OpSelectionMerge %297 None - OpBranchConditional %275 %278 %297 - %278 = OpLabel - %279 = OpIEqual %bool %262 %uint_3 - OpSelectionMerge %294 None - OpBranchConditional %279 %282 %294 - %282 = OpLabel - %283 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %284 = OpLoad %uint %283 - %285 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %286 = OpLoad %uint %285 - %287 = OpIAdd %uint %286 %284 - %288 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %287 - %289 = OpLoad %uint %288 - %290 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %289 - %291 = OpLoad %uint %290 - %292 = OpULessThanEqual %bool %291 %uint_100 - OpBranch %294 - %294 = OpLabel - %295 = OpPhi %bool %292 %282 %true %278 - OpBranch %297 - %297 = OpLabel - %298 = OpPhi %bool %295 %294 %false %274 - %299 = OpPhi %bool %false %294 %true %274 - OpSelectionMerge %320 None - OpBranchConditional %299 %302 %320 - %302 = OpLabel - %303 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %304 = OpLoad %uint %303 - %305 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %306 = OpLoad %uint %305 - %307 = OpIAdd %uint %306 %304 - %308 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %307 - %309 = OpLoad %uint %308 - %310 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %309 - %311 = OpLoad %uint %310 - %312 = OpULessThanEqual %bool %311 %uint_100 - OpSelectionMerge %317 None - OpBranchConditional %312 %315 %317 - %315 = OpLabel - OpStore %310 %267 - OpBranch %317 - %317 = OpLabel - %318 = OpPhi %bool %true %315 %298 %302 - OpBranch %320 - %320 = OpLabel - %321 = OpPhi %bool %318 %317 %298 %297 - OpBranch %323 - %323 = OpLabel - %324 = OpPhi %bool %321 %320 %false %270 - %325 = OpPhi %bool %false %320 %true %270 - OpSelectionMerge %385 None - OpBranchConditional %325 %328 %385 - %328 = OpLabel - %329 = OpSGreaterThanEqual %bool %262 %uint_1 - OpSelectionMerge %352 None - OpBranchConditional %329 %332 %352 - %332 = OpLabel - %333 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %334 = OpLoad %uint %333 - %335 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %336 = OpLoad %uint %335 - %337 = OpIAdd %uint %336 %334 - %338 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %337 - %339 = OpLoad %uint %338 - %340 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %339 - OpStore %340 %267 - %341 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %342 = OpLoad %uint %341 - %343 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %344 = OpLoad %uint %343 - %345 = OpIAdd %uint %344 %342 - %346 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %345 - %347 = OpLoad %uint %346 - %348 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %347 - %349 = OpLoad %uint %348 - %350 = OpULessThanEqual %bool %349 %uint_100 - OpBranch %352 - %352 = OpLabel - %353 = OpPhi %bool %350 %332 %324 %328 - %354 = OpPhi %bool %false %332 %true %328 - OpSelectionMerge %382 None - OpBranchConditional %354 %357 %382 - %357 = OpLabel - %358 = OpIEqual %bool %262 %uint_0 - OpSelectionMerge %380 None - OpBranchConditional %358 %361 %380 - %361 = OpLabel - %362 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %363 = OpLoad %uint %362 - %364 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %365 = OpLoad %uint %364 - %366 = OpIAdd %uint %365 %363 - %367 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %366 - %368 = OpLoad %uint %367 - %369 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %368 - OpStore %369 %267 - %370 = OpIAdd %uint %267 %uint_1 - %371 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %372 = OpLoad %uint %371 - %373 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %374 = OpLoad %uint %373 - %375 = OpIAdd %uint %374 %372 - %376 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %375 - %377 = OpLoad %uint %376 - %378 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %377 - OpStore %378 %370 - OpBranch %380 - %380 = OpLabel - OpBranch %382 - %382 = OpLabel - %383 = OpPhi %bool %true %380 %353 %352 - OpBranch %385 - %385 = OpLabel - %386 = OpPhi %bool %383 %382 %324 %323 - OpBranchConditional %386 %388 %392 - %388 = OpLabel - %389 = OpIAdd %uint %267 %uint_1 - %390 = OpUGreaterThanEqual %bool %389 %259 - OpBranch %392 - %392 = OpLabel - %393 = OpPhi %uint %389 %388 %444 %385 - %394 = OpPhi %bool %390 %388 %true %385 - OpBranchConditional %394 %396 %266 - %396 = OpLabel - OpBranch %398 - %398 = OpLabel - OpBranch %400 - %400 = OpLabel - %401 = OpLoad %uint %33 - %402 = OpINotEqual %bool %401 %uint_0 - OpSelectionMerge %433 None - OpBranchConditional %402 %405 %433 - %405 = OpLabel - %406 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %407 = OpCompositeExtract %uint %406 0 - %408 = OpLoad %uint %44 - %409 = OpIMul %uint %407 %408 - %411 = OpAtomicLoad %uint %31 %uint_1 %uint_64 - %412 = OpIAdd %uint %409 %411 - %413 = OpAtomicIAdd %uint %32 %uint_1 %uint_64 %uint_1 - %414 = OpULessThan %bool %413 %412 - OpSelectionMerge %431 None - OpBranchConditional %414 %417 %431 - %417 = OpLabel - %418 = OpPhi %uint %420 %417 %uint_0 %405 - %419 = OpAtomicLoad %uint %32 %uint_1 %uint_64 - %420 = OpIAdd %uint %418 %uint_1 - %422 = OpULessThan %bool %418 %uint_1023 - %423 = OpULessThan %bool %419 %412 - %425 = OpSelect %bool %422 %423 %false - %426 = OpLogicalNot %bool %425 - OpLoopMerge %429 %417 None - OpBranchConditional %426 %429 %417 - %429 = OpLabel - OpBranch %431 - %431 = OpLabel - OpBranch %433 - %433 = OpLabel - %434 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %233 - OpAtomicStore %434 %uint_1 %uint_68 %uint_2 - %436 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %244 - OpAtomicStore %436 %uint_1 %uint_68 %uint_1 - %437 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %249 - OpAtomicStore %437 %uint_1 %uint_68 %uint_2 - %438 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %245 - OpAtomicStore %438 %uint_1 %uint_68 %uint_1 - OpBranch %440 - %440 = OpLabel - OpBranch %442 - %442 = OpLabel - OpReturn - OpFunctionEnd - %470 = OpExtInst %void %445 PushConstantRegionGroupOffset %uint_0 %uint_12 - %447 = OpExtInst %void %445 Kernel %27 %446 %uint_7 - %449 = OpExtInst %void %445 ArgumentInfo %448 - %450 = OpExtInst %void %445 ArgumentStorageBuffer %447 %uint_0 %uint_0 %uint_0 %449 - %452 = OpExtInst %void %445 ArgumentInfo %451 - %453 = OpExtInst %void %445 ArgumentStorageBuffer %447 %uint_1 %uint_0 %uint_1 %452 - %455 = OpExtInst %void %445 ArgumentInfo %454 - %456 = OpExtInst %void %445 ArgumentStorageBuffer %447 %uint_2 %uint_0 %uint_2 %455 - %458 = OpExtInst %void %445 ArgumentInfo %457 - %459 = OpExtInst %void %445 ArgumentStorageBuffer %447 %uint_3 %uint_0 %uint_3 %458 - %461 = OpExtInst %void %445 ArgumentInfo %460 - %462 = OpExtInst %void %445 ArgumentStorageBuffer %447 %uint_4 %uint_0 %uint_4 %461 - %464 = OpExtInst %void %445 ArgumentInfo %463 - %465 = OpExtInst %void %445 ArgumentStorageBuffer %447 %uint_5 %uint_0 %uint_5 %464 - %467 = OpExtInst %void %445 ArgumentInfo %466 - %468 = OpExtInst %void %445 ArgumentStorageBuffer %447 %uint_6 %uint_0 %uint_6 %467 - %471 = OpExtInst %void %445 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/2+2-write-results.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/2+2-write-results.spv.dis deleted file mode 100644 index 4ae516f6e9..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/2+2-write-results.spv.dis +++ /dev/null @@ -1,192 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 155 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %136 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %27 "litmus_test" %gl_GlobalInvocationID - OpSource OpenCL_C 200 - %137 = OpString "litmus_test" - %140 = OpString "test_locations" - %143 = OpString "read_results" - %146 = OpString "test_results" - %149 = OpString "stress_params" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_15 0 Offset 0 - OpDecorate %_struct_15 Block - OpMemberDecorate %_struct_19 0 Offset 0 - OpMemberDecorate %_struct_19 1 Offset 4 - OpMemberDecorate %_struct_19 2 Offset 8 - OpMemberDecorate %_struct_19 3 Offset 12 - OpDecorate %_runtimearr__struct_19 ArrayStride 16 - OpMemberDecorate %_struct_21 0 Offset 0 - OpDecorate %_struct_21 Block - OpDecorate %17 DescriptorSet 0 - OpDecorate %17 Binding 0 - OpDecorate %18 DescriptorSet 0 - OpDecorate %18 Binding 1 - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 2 - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 3 - OpDecorate %8 SpecId 0 - OpDecorate %9 SpecId 1 - OpDecorate %10 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint - %8 = OpSpecConstant %uint 1 - %9 = OpSpecConstant %uint 1 - %10 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %8 %9 %10 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_15 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_15 = OpTypePointer StorageBuffer %_struct_15 - %_struct_19 = OpTypeStruct %uint %uint %uint %uint -%_runtimearr__struct_19 = OpTypeRuntimeArray %_struct_19 - %_struct_21 = OpTypeStruct %_runtimearr__struct_19 -%_ptr_StorageBuffer__struct_21 = OpTypePointer StorageBuffer %_struct_21 - %void = OpTypeVoid - %26 = OpTypeFunction %void -%_ptr_Input_uint = OpTypePointer Input %uint - %uint_0 = OpConstant %uint 0 -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_10 = OpConstant %uint 10 - %uint_1 = OpConstant %uint 1 - %uint_66 = OpConstant %uint 66 - %uint_9 = OpConstant %uint 9 - %uint_8 = OpConstant %uint 8 - %uint_11 = OpConstant %uint 11 - %bool = OpTypeBool - %uint_2 = OpConstant %uint 2 - %false = OpConstantFalse %bool - %uint_3 = OpConstant %uint 3 - %uint_72 = OpConstant %uint 72 - %true = OpConstantTrue %bool - %uint_4 = OpConstant %uint 4 - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input - %13 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize - %17 = OpVariable %_ptr_StorageBuffer__struct_15 StorageBuffer - %18 = OpVariable %_ptr_StorageBuffer__struct_15 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_21 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_15 StorageBuffer - %27 = OpFunction %void None %26 - %28 = OpLabel - %31 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %32 = OpLoad %uint %31 - %34 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %35 = OpLoad %uint %34 - %36 = OpIAdd %uint %35 %32 - %39 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %40 = OpLoad %uint %39 - %42 = OpShiftLeftLogical %uint %40 %uint_1 - %43 = OpIMul %uint %42 %36 - %44 = OpAccessChain %_ptr_StorageBuffer_uint %17 %uint_0 %43 - %46 = OpAtomicLoad %uint %44 %uint_1 %uint_66 - %47 = OpShiftLeftLogical %uint %36 %uint_1 - %48 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %47 - %49 = OpAtomicLoad %uint %48 %uint_1 %uint_66 - %50 = OpBitwiseOr %uint %47 %uint_1 - %51 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %50 - %52 = OpAtomicLoad %uint %51 %uint_1 %uint_66 - %53 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %54 = OpCompositeExtract %uint %53 0 - %56 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_9 - %57 = OpLoad %uint %56 - %58 = OpIMul %uint %54 %57 - %60 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_8 - %61 = OpLoad %uint %60 - %62 = OpIMul %uint %61 %36 - %63 = OpUMod %uint %62 %58 - %64 = OpLoad %uint %39 - %65 = OpShiftLeftLogical %uint %63 %uint_1 - %66 = OpIMul %uint %65 %64 - %68 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_11 - %69 = OpLoad %uint %68 - %70 = OpIAdd %uint %66 %69 - %71 = OpAccessChain %_ptr_StorageBuffer_uint %17 %uint_0 %70 - %72 = OpAtomicLoad %uint %71 %uint_1 %uint_66 - %74 = OpIEqual %bool %46 %uint_1 - %76 = OpIEqual %bool %72 %uint_2 - %78 = OpSelect %bool %74 %76 %false - %79 = OpLogicalNot %bool %78 - OpSelectionMerge %126 None - OpBranchConditional %79 %82 %126 - %82 = OpLabel - %83 = OpIEqual %bool %46 %uint_2 - %84 = OpIEqual %bool %72 %uint_1 - %85 = OpSelect %bool %83 %84 %false - %86 = OpLogicalNot %bool %85 - OpSelectionMerge %116 None - OpBranchConditional %86 %89 %116 - %89 = OpLabel - %90 = OpSelect %bool %74 %84 %false - %91 = OpLogicalNot %bool %90 - OpSelectionMerge %106 None - OpBranchConditional %91 %94 %106 - %94 = OpLabel - %95 = OpSelect %bool %83 %76 %false - OpSelectionMerge %104 None - OpBranchConditional %95 %98 %104 - %98 = OpLabel - %100 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_3 - %102 = OpAtomicIAdd %uint %100 %uint_1 %uint_72 %uint_1 - OpBranch %104 - %104 = OpLabel - OpBranch %106 - %106 = OpLabel - %107 = OpPhi %bool %false %104 %true %89 - OpSelectionMerge %114 None - OpBranchConditional %107 %110 %114 - %110 = OpLabel - %111 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_2 - %112 = OpAtomicIAdd %uint %111 %uint_1 %uint_72 %uint_1 - OpBranch %114 - %114 = OpLabel - OpBranch %116 - %116 = OpLabel - %117 = OpPhi %bool %false %114 %true %82 - OpSelectionMerge %124 None - OpBranchConditional %117 %120 %124 - %120 = OpLabel - %121 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_1 - %122 = OpAtomicIAdd %uint %121 %uint_1 %uint_72 %uint_1 - OpBranch %124 - %124 = OpLabel - OpBranch %126 - %126 = OpLabel - %127 = OpPhi %bool %false %124 %true %28 - OpSelectionMerge %134 None - OpBranchConditional %127 %130 %134 - %130 = OpLabel - %131 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_0 - %132 = OpAtomicIAdd %uint %131 %uint_1 %uint_72 %uint_1 - OpBranch %134 - %134 = OpLabel - OpReturn - OpFunctionEnd - %153 = OpExtInst %void %136 PushConstantRegionOffset %uint_0 %uint_12 - %139 = OpExtInst %void %136 Kernel %27 %137 %uint_4 - %141 = OpExtInst %void %136 ArgumentInfo %140 - %142 = OpExtInst %void %136 ArgumentStorageBuffer %139 %uint_0 %uint_0 %uint_0 %141 - %144 = OpExtInst %void %136 ArgumentInfo %143 - %145 = OpExtInst %void %136 ArgumentStorageBuffer %139 %uint_1 %uint_0 %uint_1 %144 - %147 = OpExtInst %void %136 ArgumentInfo %146 - %148 = OpExtInst %void %136 ArgumentStorageBuffer %139 %uint_2 %uint_0 %uint_2 %147 - %150 = OpExtInst %void %136 ArgumentInfo %149 - %151 = OpExtInst %void %136 ArgumentStorageBuffer %139 %uint_3 %uint_0 %uint_3 %150 - %154 = OpExtInst %void %136 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/2+2-write.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/2+2-write.spv.dis deleted file mode 100644 index a7ed279999..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/2+2-write.spv.dis +++ /dev/null @@ -1,520 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 471 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %444 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %27 "litmus_test" %gl_LocalInvocationID %gl_WorkGroupID - OpSource OpenCL_C 200 - %445 = OpString "litmus_test" - %447 = OpString "test_locations" - %450 = OpString "read_results" - %453 = OpString "shuffled_workgroups" - %456 = OpString "barrier" - %459 = OpString "scratchpad" - %462 = OpString "scratch_locations" - %465 = OpString "stress_params" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_16 0 Offset 0 - OpDecorate %_struct_16 Block - OpDecorate %18 DescriptorSet 0 - OpDecorate %18 Binding 0 - OpDecorate %19 DescriptorSet 0 - OpDecorate %19 Binding 1 - OpDecorate %20 DescriptorSet 0 - OpDecorate %20 Binding 2 - OpDecorate %21 DescriptorSet 0 - OpDecorate %21 Binding 3 - OpDecorate %22 DescriptorSet 0 - OpDecorate %22 Binding 4 - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 5 - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 6 - OpDecorate %6 SpecId 0 - OpDecorate %7 SpecId 1 - OpDecorate %8 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 - %6 = OpSpecConstant %uint 1 - %7 = OpSpecConstant %uint 1 - %8 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %6 %7 %8 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_16 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_16 = OpTypePointer StorageBuffer %_struct_16 - %void = OpTypeVoid - %26 = OpTypeFunction %void -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint - %uint_9 = OpConstant %uint 9 - %bool = OpTypeBool - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 - %uint_100 = OpConstant %uint 100 -%uint_4294967295 = OpConstant %uint 4294967295 - %uint_7 = OpConstant %uint 7 - %uint_10 = OpConstant %uint 10 - %uint_8 = OpConstant %uint 8 - %uint_11 = OpConstant %uint 11 - %uint_4 = OpConstant %uint 4 - %uint_5 = OpConstant %uint 5 - %uint_6 = OpConstant %uint 6 - %uint_64 = OpConstant %uint 64 - %uint_1023 = OpConstant %uint 1023 - %false = OpConstantFalse %bool - %true = OpConstantTrue %bool - %443 = OpUndef %uint - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant - %11 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input -%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input - %18 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %19 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %20 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %21 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %22 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %27 = OpFunction %void None %26 - %28 = OpLabel - %31 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %uint_0 - %32 = OpAccessChain %_ptr_StorageBuffer_uint %21 %uint_0 %uint_0 - %33 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_0 - %35 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %36 = OpLoad %uint %35 - %38 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %39 = OpLoad %uint %38 - %40 = OpIAdd %uint %39 %36 - %41 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_0 %40 - %42 = OpLoad %uint %41 - %44 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_9 - %45 = OpLoad %uint %44 - %47 = OpUGreaterThanEqual %bool %42 %45 - OpSelectionMerge %204 None - OpBranchConditional %47 %50 %204 - %50 = OpLabel - %52 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_1 - %53 = OpLoad %uint %52 - %54 = OpINotEqual %bool %53 %uint_0 - OpSelectionMerge %202 None - OpBranchConditional %54 %57 %202 - %57 = OpLabel - %59 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_2 - %60 = OpLoad %uint %59 - %62 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_3 - %63 = OpLoad %uint %62 - %64 = OpINotEqual %bool %60 %uint_0 - OpSelectionMerge %200 None - OpBranchConditional %64 %67 %200 - %67 = OpLabel - %68 = OpPhi %uint %195 %194 %uint_0 %57 - OpLoopMerge %198 %194 None - OpBranch %71 - %71 = OpLabel - %72 = OpSGreaterThanEqual %bool %63 %uint_2 - OpSelectionMerge %125 None - OpBranchConditional %72 %75 %125 - %75 = OpLabel - %76 = OpSGreaterThanEqual %bool %63 %uint_3 - OpSelectionMerge %99 None - OpBranchConditional %76 %79 %99 - %79 = OpLabel - %80 = OpIEqual %bool %63 %uint_3 - OpSelectionMerge %96 None - OpBranchConditional %80 %83 %96 - %83 = OpLabel - %84 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %85 = OpLoad %uint %84 - %86 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %87 = OpLoad %uint %86 - %88 = OpIAdd %uint %87 %85 - %89 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %88 - %90 = OpLoad %uint %89 - %91 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %90 - %92 = OpLoad %uint %91 - %94 = OpULessThanEqual %bool %92 %uint_100 - OpBranch %96 - %96 = OpLabel - %97 = OpPhi %bool %94 %83 %true %79 - OpBranch %99 - %99 = OpLabel - %100 = OpPhi %bool %97 %96 %false %75 - %101 = OpPhi %bool %false %96 %true %75 - OpSelectionMerge %122 None - OpBranchConditional %101 %104 %122 - %104 = OpLabel - %105 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %106 = OpLoad %uint %105 - %107 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %108 = OpLoad %uint %107 - %109 = OpIAdd %uint %108 %106 - %110 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %109 - %111 = OpLoad %uint %110 - %112 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %111 - %113 = OpLoad %uint %112 - %114 = OpULessThanEqual %bool %113 %uint_100 - OpSelectionMerge %119 None - OpBranchConditional %114 %117 %119 - %117 = OpLabel - OpStore %112 %68 - OpBranch %119 - %119 = OpLabel - %120 = OpPhi %bool %true %117 %100 %104 - OpBranch %122 - %122 = OpLabel - %123 = OpPhi %bool %120 %119 %100 %99 - OpBranch %125 - %125 = OpLabel - %126 = OpPhi %bool %123 %122 %false %71 - %127 = OpPhi %bool %false %122 %true %71 - OpSelectionMerge %187 None - OpBranchConditional %127 %130 %187 - %130 = OpLabel - %131 = OpSGreaterThanEqual %bool %63 %uint_1 - OpSelectionMerge %154 None - OpBranchConditional %131 %134 %154 - %134 = OpLabel - %135 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %136 = OpLoad %uint %135 - %137 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %138 = OpLoad %uint %137 - %139 = OpIAdd %uint %138 %136 - %140 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %139 - %141 = OpLoad %uint %140 - %142 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %141 - OpStore %142 %68 - %143 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %144 = OpLoad %uint %143 - %145 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %146 = OpLoad %uint %145 - %147 = OpIAdd %uint %146 %144 - %148 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %147 - %149 = OpLoad %uint %148 - %150 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %149 - %151 = OpLoad %uint %150 - %152 = OpULessThanEqual %bool %151 %uint_100 - OpBranch %154 - %154 = OpLabel - %155 = OpPhi %bool %152 %134 %126 %130 - %156 = OpPhi %bool %false %134 %true %130 - OpSelectionMerge %184 None - OpBranchConditional %156 %159 %184 - %159 = OpLabel - %160 = OpIEqual %bool %63 %uint_0 - OpSelectionMerge %182 None - OpBranchConditional %160 %163 %182 - %163 = OpLabel - %164 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %165 = OpLoad %uint %164 - %166 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %167 = OpLoad %uint %166 - %168 = OpIAdd %uint %167 %165 - %169 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %168 - %170 = OpLoad %uint %169 - %171 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %170 - OpStore %171 %68 - %172 = OpIAdd %uint %68 %uint_1 - %173 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %174 = OpLoad %uint %173 - %175 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %176 = OpLoad %uint %175 - %177 = OpIAdd %uint %176 %174 - %178 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %177 - %179 = OpLoad %uint %178 - %180 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %179 - OpStore %180 %172 - OpBranch %182 - %182 = OpLabel - OpBranch %184 - %184 = OpLabel - %185 = OpPhi %bool %true %182 %155 %154 - OpBranch %187 - %187 = OpLabel - %188 = OpPhi %bool %185 %184 %126 %125 - OpBranchConditional %188 %190 %194 - %190 = OpLabel - %191 = OpIAdd %uint %68 %uint_1 - %192 = OpUGreaterThanEqual %bool %191 %60 - OpBranch %194 - %194 = OpLabel - %195 = OpPhi %uint %191 %190 %443 %187 - %196 = OpPhi %bool %192 %190 %true %187 - OpBranchConditional %196 %198 %67 - %198 = OpLabel - OpBranch %200 - %200 = OpLabel - OpBranch %202 - %202 = OpLabel - OpBranch %204 - %204 = OpLabel - %205 = OpPhi %bool %false %202 %true %28 - OpSelectionMerge %439 None - OpBranchConditional %205 %208 %439 - %208 = OpLabel - %209 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %210 = OpCompositeExtract %uint %209 0 - %211 = OpIMul %uint %210 %45 - %212 = OpIMul %uint %210 %42 - %213 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %214 = OpLoad %uint %213 - %215 = OpIAdd %uint %212 %214 - %216 = OpIAdd %uint %42 %uint_1 - %218 = OpIAdd %uint %45 %uint_4294967295 - %219 = OpUMod %uint %214 %218 - %220 = OpIAdd %uint %216 %219 - %221 = OpUMod %uint %220 %45 - %222 = OpIMul %uint %221 %210 - %224 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_7 - %225 = OpLoad %uint %224 - %226 = OpIMul %uint %225 %214 - %227 = OpUMod %uint %226 %210 - %228 = OpIAdd %uint %227 %222 - %230 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %231 = OpLoad %uint %230 - %232 = OpShiftLeftLogical %uint %215 %uint_1 - %233 = OpIMul %uint %232 %231 - %235 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_8 - %236 = OpLoad %uint %235 - %237 = OpIMul %uint %236 %215 - %238 = OpUMod %uint %237 %211 - %239 = OpShiftLeftLogical %uint %231 %uint_1 - %240 = OpIMul %uint %239 %238 - %242 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_11 - %243 = OpLoad %uint %242 - %244 = OpIAdd %uint %240 %243 - %245 = OpIMul %uint %239 %228 - %246 = OpIMul %uint %236 %228 - %247 = OpUMod %uint %246 %211 - %248 = OpIMul %uint %239 %247 - %249 = OpIAdd %uint %248 %243 - %251 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_4 - %252 = OpLoad %uint %251 - %253 = OpINotEqual %bool %252 %uint_0 - OpSelectionMerge %400 None - OpBranchConditional %253 %256 %400 - %256 = OpLabel - %258 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_5 - %259 = OpLoad %uint %258 - %261 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_6 - %262 = OpLoad %uint %261 - %263 = OpINotEqual %bool %259 %uint_0 - OpSelectionMerge %398 None - OpBranchConditional %263 %266 %398 - %266 = OpLabel - %267 = OpPhi %uint %393 %392 %uint_0 %256 - OpLoopMerge %396 %392 None - OpBranch %270 - %270 = OpLabel - %271 = OpSGreaterThanEqual %bool %262 %uint_2 - OpSelectionMerge %323 None - OpBranchConditional %271 %274 %323 - %274 = OpLabel - %275 = OpSGreaterThanEqual %bool %262 %uint_3 - OpSelectionMerge %297 None - OpBranchConditional %275 %278 %297 - %278 = OpLabel - %279 = OpIEqual %bool %262 %uint_3 - OpSelectionMerge %294 None - OpBranchConditional %279 %282 %294 - %282 = OpLabel - %283 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %284 = OpLoad %uint %283 - %285 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %286 = OpLoad %uint %285 - %287 = OpIAdd %uint %286 %284 - %288 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %287 - %289 = OpLoad %uint %288 - %290 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %289 - %291 = OpLoad %uint %290 - %292 = OpULessThanEqual %bool %291 %uint_100 - OpBranch %294 - %294 = OpLabel - %295 = OpPhi %bool %292 %282 %true %278 - OpBranch %297 - %297 = OpLabel - %298 = OpPhi %bool %295 %294 %false %274 - %299 = OpPhi %bool %false %294 %true %274 - OpSelectionMerge %320 None - OpBranchConditional %299 %302 %320 - %302 = OpLabel - %303 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %304 = OpLoad %uint %303 - %305 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %306 = OpLoad %uint %305 - %307 = OpIAdd %uint %306 %304 - %308 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %307 - %309 = OpLoad %uint %308 - %310 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %309 - %311 = OpLoad %uint %310 - %312 = OpULessThanEqual %bool %311 %uint_100 - OpSelectionMerge %317 None - OpBranchConditional %312 %315 %317 - %315 = OpLabel - OpStore %310 %267 - OpBranch %317 - %317 = OpLabel - %318 = OpPhi %bool %true %315 %298 %302 - OpBranch %320 - %320 = OpLabel - %321 = OpPhi %bool %318 %317 %298 %297 - OpBranch %323 - %323 = OpLabel - %324 = OpPhi %bool %321 %320 %false %270 - %325 = OpPhi %bool %false %320 %true %270 - OpSelectionMerge %385 None - OpBranchConditional %325 %328 %385 - %328 = OpLabel - %329 = OpSGreaterThanEqual %bool %262 %uint_1 - OpSelectionMerge %352 None - OpBranchConditional %329 %332 %352 - %332 = OpLabel - %333 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %334 = OpLoad %uint %333 - %335 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %336 = OpLoad %uint %335 - %337 = OpIAdd %uint %336 %334 - %338 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %337 - %339 = OpLoad %uint %338 - %340 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %339 - OpStore %340 %267 - %341 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %342 = OpLoad %uint %341 - %343 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %344 = OpLoad %uint %343 - %345 = OpIAdd %uint %344 %342 - %346 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %345 - %347 = OpLoad %uint %346 - %348 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %347 - %349 = OpLoad %uint %348 - %350 = OpULessThanEqual %bool %349 %uint_100 - OpBranch %352 - %352 = OpLabel - %353 = OpPhi %bool %350 %332 %324 %328 - %354 = OpPhi %bool %false %332 %true %328 - OpSelectionMerge %382 None - OpBranchConditional %354 %357 %382 - %357 = OpLabel - %358 = OpIEqual %bool %262 %uint_0 - OpSelectionMerge %380 None - OpBranchConditional %358 %361 %380 - %361 = OpLabel - %362 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %363 = OpLoad %uint %362 - %364 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %365 = OpLoad %uint %364 - %366 = OpIAdd %uint %365 %363 - %367 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %366 - %368 = OpLoad %uint %367 - %369 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %368 - OpStore %369 %267 - %370 = OpIAdd %uint %267 %uint_1 - %371 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %372 = OpLoad %uint %371 - %373 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %374 = OpLoad %uint %373 - %375 = OpIAdd %uint %374 %372 - %376 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %375 - %377 = OpLoad %uint %376 - %378 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %377 - OpStore %378 %370 - OpBranch %380 - %380 = OpLabel - OpBranch %382 - %382 = OpLabel - %383 = OpPhi %bool %true %380 %353 %352 - OpBranch %385 - %385 = OpLabel - %386 = OpPhi %bool %383 %382 %324 %323 - OpBranchConditional %386 %388 %392 - %388 = OpLabel - %389 = OpIAdd %uint %267 %uint_1 - %390 = OpUGreaterThanEqual %bool %389 %259 - OpBranch %392 - %392 = OpLabel - %393 = OpPhi %uint %389 %388 %443 %385 - %394 = OpPhi %bool %390 %388 %true %385 - OpBranchConditional %394 %396 %266 - %396 = OpLabel - OpBranch %398 - %398 = OpLabel - OpBranch %400 - %400 = OpLabel - %401 = OpLoad %uint %33 - %402 = OpINotEqual %bool %401 %uint_0 - OpSelectionMerge %433 None - OpBranchConditional %402 %405 %433 - %405 = OpLabel - %406 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %407 = OpCompositeExtract %uint %406 0 - %408 = OpLoad %uint %44 - %409 = OpIMul %uint %407 %408 - %411 = OpAtomicLoad %uint %31 %uint_1 %uint_64 - %412 = OpIAdd %uint %409 %411 - %413 = OpAtomicIAdd %uint %32 %uint_1 %uint_64 %uint_1 - %414 = OpULessThan %bool %413 %412 - OpSelectionMerge %431 None - OpBranchConditional %414 %417 %431 - %417 = OpLabel - %418 = OpPhi %uint %420 %417 %uint_0 %405 - %419 = OpAtomicLoad %uint %32 %uint_1 %uint_64 - %420 = OpIAdd %uint %418 %uint_1 - %422 = OpULessThan %bool %418 %uint_1023 - %423 = OpULessThan %bool %419 %412 - %425 = OpSelect %bool %422 %423 %false - %426 = OpLogicalNot %bool %425 - OpLoopMerge %429 %417 None - OpBranchConditional %426 %429 %417 - %429 = OpLabel - OpBranch %431 - %431 = OpLabel - OpBranch %433 - %433 = OpLabel - %434 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %233 - OpAtomicStore %434 %uint_1 %uint_64 %uint_2 - %435 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %244 - OpAtomicStore %435 %uint_1 %uint_64 %uint_1 - %436 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %249 - OpAtomicStore %436 %uint_1 %uint_64 %uint_2 - %437 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %245 - OpAtomicStore %437 %uint_1 %uint_64 %uint_1 - OpBranch %439 - %439 = OpLabel - OpBranch %441 - %441 = OpLabel - OpReturn - OpFunctionEnd - %469 = OpExtInst %void %444 PushConstantRegionGroupOffset %uint_0 %uint_12 - %446 = OpExtInst %void %444 Kernel %27 %445 %uint_7 - %448 = OpExtInst %void %444 ArgumentInfo %447 - %449 = OpExtInst %void %444 ArgumentStorageBuffer %446 %uint_0 %uint_0 %uint_0 %448 - %451 = OpExtInst %void %444 ArgumentInfo %450 - %452 = OpExtInst %void %444 ArgumentStorageBuffer %446 %uint_1 %uint_0 %uint_1 %451 - %454 = OpExtInst %void %444 ArgumentInfo %453 - %455 = OpExtInst %void %444 ArgumentStorageBuffer %446 %uint_2 %uint_0 %uint_2 %454 - %457 = OpExtInst %void %444 ArgumentInfo %456 - %458 = OpExtInst %void %444 ArgumentStorageBuffer %446 %uint_3 %uint_0 %uint_3 %457 - %460 = OpExtInst %void %444 ArgumentInfo %459 - %461 = OpExtInst %void %444 ArgumentStorageBuffer %446 %uint_4 %uint_0 %uint_4 %460 - %463 = OpExtInst %void %444 ArgumentInfo %462 - %464 = OpExtInst %void %444 ArgumentStorageBuffer %446 %uint_5 %uint_0 %uint_5 %463 - %466 = OpExtInst %void %444 ArgumentInfo %465 - %467 = OpExtInst %void %444 ArgumentStorageBuffer %446 %uint_6 %uint_0 %uint_6 %466 - %470 = OpExtInst %void %444 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/compute.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/compute.spv.dis deleted file mode 100644 index c40d3c2bed..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/compute.spv.dis +++ /dev/null @@ -1,703 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Shaderc over Glslang; 11 -; Bound: 504 -; Schema: 0 - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID %gl_LocalInvocationID %gl_WorkGroupID - OpExecutionMode %main LocalSize 1 1 1 - OpSource GLSL 450 - OpSourceExtension "GL_ARB_separate_shader_objects" - OpSourceExtension "GL_ARB_shading_language_420pack" - OpSourceExtension "GL_GOOGLE_cpp_style_line_directive" - OpSourceExtension "GL_GOOGLE_include_directive" - OpName %main "main" - OpName %linear_srgb_to_oklab_vf3_ "linear_srgb_to_oklab(vf3;" - OpName %c "c" - OpName %uint2rgb_u1_ "uint2rgb(u1;" - OpName %c_0 "c" - OpName %brighter_than_u1_u1_ "brighter_than(u1;u1;" - OpName %left "left" - OpName %right "right" - OpName %global_compare_and_swap_vi2_ "global_compare_and_swap(vi2;" - OpName %idx "idx" - OpName %local_compare_and_swap_vi2_ "local_compare_and_swap(vi2;" - OpName %idx_0 "idx" - OpName %big_flip_u1_ "big_flip(u1;" - OpName %h "h" - OpName %big_disperse_u1_ "big_disperse(u1;" - OpName %h_0 "h" - OpName %local_flip_u1_ "local_flip(u1;" - OpName %h_1 "h" - OpName %local_disperse_u1_ "local_disperse(u1;" - OpName %h_2 "h" - OpName %local_bms_u1_ "local_bms(u1;" - OpName %h_3 "h" - OpName %l "l" - OpName %m "m" - OpName %s "s" - OpName %l_ "l_" - OpName %m_ "m_" - OpName %s_ "s_" - OpName %param "param" - OpName %param_0 "param" - OpName %param_1 "param" - OpName %param_2 "param" - OpName %SortData "SortData" - OpMemberName %SortData 0 "value" - OpName %_ "" - OpName %tmp "tmp" - OpName %local_value "local_value" - OpName %tmp_0 "tmp" - OpName %t_prime "t_prime" - OpName %gl_GlobalInvocationID "gl_GlobalInvocationID" - OpName %half_h "half_h" - OpName %q "q" - OpName %x "x" - OpName %y "y" - OpName %param_3 "param" - OpName %t_prime_0 "t_prime" - OpName %half_h_0 "half_h" - OpName %q_0 "q" - OpName %x_0 "x" - OpName %y_0 "y" - OpName %param_4 "param" - OpName %t "t" - OpName %gl_LocalInvocationID "gl_LocalInvocationID" - OpName %half_h_1 "half_h" - OpName %indices "indices" - OpName %param_5 "param" - OpName %t_0 "t" - OpName %half_h_2 "half_h" - OpName %indices_0 "indices" - OpName %param_6 "param" - OpName %t_1 "t" - OpName %hh "hh" - OpName %param_7 "param" - OpName %param_8 "param" - OpName %t_2 "t" - OpName %offset "offset" - OpName %gl_WorkGroupID "gl_WorkGroupID" - OpName %Parameters "Parameters" - OpMemberName %Parameters 0 "h" - OpMemberName %Parameters 1 "algorithm" - OpName %parameters "parameters" - OpName %param_9 "param" - OpName %param_10 "param" - OpName %param_11 "param" - OpName %param_12 "param" - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %SortData 0 Offset 0 - OpDecorate %SortData BufferBlock - OpDecorate %_ DescriptorSet 0 - OpDecorate %_ Binding 0 - OpDecorate %211 SpecId 1 - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpMemberDecorate %Parameters 0 Offset 0 - OpMemberDecorate %Parameters 1 Offset 4 - OpDecorate %Parameters Block - OpDecorate %parameters DescriptorSet 0 - OpDecorate %parameters Binding 1 - %void = OpTypeVoid - %3 = OpTypeFunction %void - %float = OpTypeFloat 32 - %v3float = OpTypeVector %float 3 -%_ptr_Function_v3float = OpTypePointer Function %v3float - %9 = OpTypeFunction %v3float %_ptr_Function_v3float - %uint = OpTypeInt 32 0 -%_ptr_Function_uint = OpTypePointer Function %uint - %15 = OpTypeFunction %v3float %_ptr_Function_uint - %bool = OpTypeBool - %20 = OpTypeFunction %bool %uint %uint - %int = OpTypeInt 32 1 - %v2int = OpTypeVector %int 2 -%_ptr_Function_v2int = OpTypePointer Function %v2int - %28 = OpTypeFunction %void %_ptr_Function_v2int - %35 = OpTypeFunction %void %_ptr_Function_uint -%_ptr_Function_float = OpTypePointer Function %float -%float_0_412221462 = OpConstant %float 0.412221462 - %uint_0 = OpConstant %uint 0 -%float_0_536332548 = OpConstant %float 0.536332548 - %uint_1 = OpConstant %uint 1 -%float_0_0514459945 = OpConstant %float 0.0514459945 - %uint_2 = OpConstant %uint 2 -%float_0_211903498 = OpConstant %float 0.211903498 -%float_0_680699527 = OpConstant %float 0.680699527 -%float_0_10739696 = OpConstant %float 0.10739696 -%float_0_0883024633 = OpConstant %float 0.0883024633 -%float_0_28171885 = OpConstant %float 0.28171885 -%float_0_629978716 = OpConstant %float 0.629978716 -%float_0_333333343 = OpConstant %float 0.333333343 -%float_0_210454255 = OpConstant %float 0.210454255 -%float_0_793617785 = OpConstant %float 0.793617785 -%float_0_00407204684 = OpConstant %float 0.00407204684 -%float_1_9779985 = OpConstant %float 1.9779985 -%float_2_42859221 = OpConstant %float 2.42859221 -%float_0_45059371 = OpConstant %float 0.45059371 -%float_0_0259040371 = OpConstant %float 0.0259040371 -%float_0_782771766 = OpConstant %float 0.782771766 -%float_0_808675766 = OpConstant %float 0.808675766 - %int_0 = OpConstant %int 0 - %uint_255 = OpConstant %uint 255 - %int_8 = OpConstant %int 8 - %int_16 = OpConstant %int 16 -%_runtimearr_uint = OpTypeRuntimeArray %uint - %SortData = OpTypeStruct %_runtimearr_uint -%_ptr_Uniform_SortData = OpTypePointer Uniform %SortData - %_ = OpVariable %_ptr_Uniform_SortData Uniform -%_ptr_Function_int = OpTypePointer Function %int -%_ptr_Uniform_uint = OpTypePointer Uniform %uint - %211 = OpSpecConstant %uint 1 - %v3uint = OpTypeVector %uint 3 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %211 %uint_1 %uint_1 - %214 = OpSpecConstantOp %uint CompositeExtract %gl_WorkGroupSize 0 - %215 = OpSpecConstantOp %uint IMul %214 %uint_2 -%_arr_uint_215 = OpTypeArray %uint %215 -%_ptr_Workgroup__arr_uint_215 = OpTypePointer Workgroup %_arr_uint_215 -%local_value = OpVariable %_ptr_Workgroup__arr_uint_215 Workgroup -%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input -%_ptr_Input_uint = OpTypePointer Input %uint - %int_1 = OpConstant %int 1 -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input - %uint_264 = OpConstant %uint 264 - %417 = OpSpecConstantOp %uint CompositeExtract %gl_WorkGroupSize 0 - %418 = OpSpecConstantOp %uint IMul %417 %uint_2 -%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input - %Parameters = OpTypeStruct %uint %uint -%_ptr_Uniform_Parameters = OpTypePointer Uniform %Parameters - %parameters = OpVariable %_ptr_Uniform_Parameters Uniform - %main = OpFunction %void None %3 - %5 = OpLabel - %t_2 = OpVariable %_ptr_Function_uint Function - %offset = OpVariable %_ptr_Function_uint Function - %param_9 = OpVariable %_ptr_Function_uint Function - %param_10 = OpVariable %_ptr_Function_uint Function - %param_11 = OpVariable %_ptr_Function_uint Function - %param_12 = OpVariable %_ptr_Function_uint Function - %414 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %415 = OpLoad %uint %414 - OpStore %t_2 %415 - %420 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %421 = OpLoad %uint %420 - %422 = OpIMul %uint %418 %421 - OpStore %offset %422 - %426 = OpAccessChain %_ptr_Uniform_uint %parameters %int_1 - %427 = OpLoad %uint %426 - %428 = OpULessThanEqual %bool %427 %uint_1 - OpSelectionMerge %430 None - OpBranchConditional %428 %429 %430 - %429 = OpLabel - %431 = OpLoad %uint %t_2 - %432 = OpIMul %uint %431 %uint_2 - %433 = OpLoad %uint %offset - %434 = OpLoad %uint %t_2 - %435 = OpIMul %uint %434 %uint_2 - %436 = OpIAdd %uint %433 %435 - %437 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %436 - %438 = OpLoad %uint %437 - %439 = OpAccessChain %_ptr_Workgroup_uint %local_value %432 - OpStore %439 %438 - %440 = OpLoad %uint %t_2 - %441 = OpIMul %uint %440 %uint_2 - %442 = OpIAdd %uint %441 %uint_1 - %443 = OpLoad %uint %offset - %444 = OpLoad %uint %t_2 - %445 = OpIMul %uint %444 %uint_2 - %446 = OpIAdd %uint %443 %445 - %447 = OpIAdd %uint %446 %uint_1 - %448 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %447 - %449 = OpLoad %uint %448 - %450 = OpAccessChain %_ptr_Workgroup_uint %local_value %442 - OpStore %450 %449 - OpBranch %430 - %430 = OpLabel - %451 = OpAccessChain %_ptr_Uniform_uint %parameters %int_1 - %452 = OpLoad %uint %451 - OpSelectionMerge %457 None - OpSwitch %452 %457 0 %453 1 %454 2 %455 3 %456 - %453 = OpLabel - %459 = OpAccessChain %_ptr_Uniform_uint %parameters %int_0 - %460 = OpLoad %uint %459 - OpStore %param_9 %460 - %461 = OpFunctionCall %void %local_bms_u1_ %param_9 - OpBranch %457 - %454 = OpLabel - %464 = OpAccessChain %_ptr_Uniform_uint %parameters %int_0 - %465 = OpLoad %uint %464 - OpStore %param_10 %465 - %466 = OpFunctionCall %void %local_disperse_u1_ %param_10 - OpBranch %457 - %455 = OpLabel - %469 = OpAccessChain %_ptr_Uniform_uint %parameters %int_0 - %470 = OpLoad %uint %469 - OpStore %param_11 %470 - %471 = OpFunctionCall %void %big_flip_u1_ %param_11 - OpBranch %457 - %456 = OpLabel - %474 = OpAccessChain %_ptr_Uniform_uint %parameters %int_0 - %475 = OpLoad %uint %474 - OpStore %param_12 %475 - %476 = OpFunctionCall %void %big_disperse_u1_ %param_12 - OpBranch %457 - %457 = OpLabel - %479 = OpAccessChain %_ptr_Uniform_uint %parameters %int_1 - %480 = OpLoad %uint %479 - %481 = OpULessThanEqual %bool %480 %uint_1 - OpSelectionMerge %483 None - OpBranchConditional %481 %482 %483 - %482 = OpLabel - OpControlBarrier %uint_2 %uint_2 %uint_264 - %484 = OpLoad %uint %offset - %485 = OpLoad %uint %t_2 - %486 = OpIMul %uint %485 %uint_2 - %487 = OpIAdd %uint %484 %486 - %488 = OpLoad %uint %t_2 - %489 = OpIMul %uint %488 %uint_2 - %490 = OpAccessChain %_ptr_Workgroup_uint %local_value %489 - %491 = OpLoad %uint %490 - %492 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %487 - OpStore %492 %491 - %493 = OpLoad %uint %offset - %494 = OpLoad %uint %t_2 - %495 = OpIMul %uint %494 %uint_2 - %496 = OpIAdd %uint %493 %495 - %497 = OpIAdd %uint %496 %uint_1 - %498 = OpLoad %uint %t_2 - %499 = OpIMul %uint %498 %uint_2 - %500 = OpIAdd %uint %499 %uint_1 - %501 = OpAccessChain %_ptr_Workgroup_uint %local_value %500 - %502 = OpLoad %uint %501 - %503 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %497 - OpStore %503 %502 - OpBranch %483 - %483 = OpLabel - OpReturn - OpFunctionEnd -%linear_srgb_to_oklab_vf3_ = OpFunction %v3float None %9 - %c = OpFunctionParameter %_ptr_Function_v3float - %12 = OpLabel - %l = OpVariable %_ptr_Function_float Function - %m = OpVariable %_ptr_Function_float Function - %s = OpVariable %_ptr_Function_float Function - %l_ = OpVariable %_ptr_Function_float Function - %m_ = OpVariable %_ptr_Function_float Function - %s_ = OpVariable %_ptr_Function_float Function - %55 = OpAccessChain %_ptr_Function_float %c %uint_0 - %56 = OpLoad %float %55 - %57 = OpFMul %float %float_0_412221462 %56 - %60 = OpAccessChain %_ptr_Function_float %c %uint_1 - %61 = OpLoad %float %60 - %62 = OpFMul %float %float_0_536332548 %61 - %63 = OpFAdd %float %57 %62 - %66 = OpAccessChain %_ptr_Function_float %c %uint_2 - %67 = OpLoad %float %66 - %68 = OpFMul %float %float_0_0514459945 %67 - %69 = OpFAdd %float %63 %68 - OpStore %l %69 - %72 = OpAccessChain %_ptr_Function_float %c %uint_0 - %73 = OpLoad %float %72 - %74 = OpFMul %float %float_0_211903498 %73 - %76 = OpAccessChain %_ptr_Function_float %c %uint_1 - %77 = OpLoad %float %76 - %78 = OpFMul %float %float_0_680699527 %77 - %79 = OpFAdd %float %74 %78 - %81 = OpAccessChain %_ptr_Function_float %c %uint_2 - %82 = OpLoad %float %81 - %83 = OpFMul %float %float_0_10739696 %82 - %84 = OpFAdd %float %79 %83 - OpStore %m %84 - %87 = OpAccessChain %_ptr_Function_float %c %uint_0 - %88 = OpLoad %float %87 - %89 = OpFMul %float %float_0_0883024633 %88 - %91 = OpAccessChain %_ptr_Function_float %c %uint_1 - %92 = OpLoad %float %91 - %93 = OpFMul %float %float_0_28171885 %92 - %94 = OpFAdd %float %89 %93 - %96 = OpAccessChain %_ptr_Function_float %c %uint_2 - %97 = OpLoad %float %96 - %98 = OpFMul %float %float_0_629978716 %97 - %99 = OpFAdd %float %94 %98 - OpStore %s %99 - %101 = OpLoad %float %l - %103 = OpExtInst %float %1 Pow %101 %float_0_333333343 - OpStore %l_ %103 - %105 = OpLoad %float %m - %106 = OpExtInst %float %1 Pow %105 %float_0_333333343 - OpStore %m_ %106 - %108 = OpLoad %float %s - %109 = OpExtInst %float %1 Pow %108 %float_0_333333343 - OpStore %s_ %109 - %111 = OpLoad %float %l_ - %112 = OpFMul %float %float_0_210454255 %111 - %114 = OpLoad %float %m_ - %115 = OpFMul %float %float_0_793617785 %114 - %116 = OpFAdd %float %112 %115 - %118 = OpLoad %float %s_ - %119 = OpFMul %float %float_0_00407204684 %118 - %120 = OpFSub %float %116 %119 - %122 = OpLoad %float %l_ - %123 = OpFMul %float %float_1_9779985 %122 - %125 = OpLoad %float %m_ - %126 = OpFMul %float %float_2_42859221 %125 - %127 = OpFSub %float %123 %126 - %129 = OpLoad %float %s_ - %130 = OpFMul %float %float_0_45059371 %129 - %131 = OpFAdd %float %127 %130 - %133 = OpLoad %float %l_ - %134 = OpFMul %float %float_0_0259040371 %133 - %136 = OpLoad %float %m_ - %137 = OpFMul %float %float_0_782771766 %136 - %138 = OpFAdd %float %134 %137 - %140 = OpLoad %float %s_ - %141 = OpFMul %float %float_0_808675766 %140 - %142 = OpFSub %float %138 %141 - %143 = OpCompositeConstruct %v3float %120 %131 %142 - OpReturnValue %143 - OpFunctionEnd -%uint2rgb_u1_ = OpFunction %v3float None %15 - %c_0 = OpFunctionParameter %_ptr_Function_uint - %18 = OpLabel - %146 = OpLoad %uint %c_0 - %148 = OpShiftRightLogical %uint %146 %int_0 - %150 = OpBitwiseAnd %uint %148 %uint_255 - %151 = OpConvertUToF %float %150 - %152 = OpLoad %uint %c_0 - %154 = OpShiftRightLogical %uint %152 %int_8 - %155 = OpBitwiseAnd %uint %154 %uint_255 - %156 = OpConvertUToF %float %155 - %157 = OpLoad %uint %c_0 - %159 = OpShiftRightLogical %uint %157 %int_16 - %160 = OpBitwiseAnd %uint %159 %uint_255 - %161 = OpConvertUToF %float %160 - %162 = OpCompositeConstruct %v3float %151 %156 %161 - OpReturnValue %162 - OpFunctionEnd -%brighter_than_u1_u1_ = OpFunction %bool None %20 - %left = OpFunctionParameter %uint - %right = OpFunctionParameter %uint - %24 = OpLabel - %param = OpVariable %_ptr_Function_uint Function - %param_0 = OpVariable %_ptr_Function_v3float Function - %param_1 = OpVariable %_ptr_Function_uint Function - %param_2 = OpVariable %_ptr_Function_v3float Function - OpStore %param %left - %166 = OpFunctionCall %v3float %uint2rgb_u1_ %param - OpStore %param_0 %166 - %168 = OpFunctionCall %v3float %linear_srgb_to_oklab_vf3_ %param_0 - %169 = OpCompositeExtract %float %168 0 - OpStore %param_1 %right - %171 = OpFunctionCall %v3float %uint2rgb_u1_ %param_1 - OpStore %param_2 %171 - %173 = OpFunctionCall %v3float %linear_srgb_to_oklab_vf3_ %param_2 - %174 = OpCompositeExtract %float %173 0 - %175 = OpFOrdLessThan %bool %169 %174 - OpReturnValue %175 - OpFunctionEnd -%global_compare_and_swap_vi2_ = OpFunction %void None %28 - %idx = OpFunctionParameter %_ptr_Function_v2int - %31 = OpLabel - %tmp = OpVariable %_ptr_Function_uint Function - %183 = OpAccessChain %_ptr_Function_int %idx %uint_0 - %184 = OpLoad %int %183 - %186 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %184 - %187 = OpLoad %uint %186 - %188 = OpAccessChain %_ptr_Function_int %idx %uint_1 - %189 = OpLoad %int %188 - %190 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %189 - %191 = OpLoad %uint %190 - %192 = OpFunctionCall %bool %brighter_than_u1_u1_ %187 %191 - OpSelectionMerge %194 None - OpBranchConditional %192 %193 %194 - %193 = OpLabel - %196 = OpAccessChain %_ptr_Function_int %idx %uint_0 - %197 = OpLoad %int %196 - %198 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %197 - %199 = OpLoad %uint %198 - OpStore %tmp %199 - %200 = OpAccessChain %_ptr_Function_int %idx %uint_0 - %201 = OpLoad %int %200 - %202 = OpAccessChain %_ptr_Function_int %idx %uint_1 - %203 = OpLoad %int %202 - %204 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %203 - %205 = OpLoad %uint %204 - %206 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %201 - OpStore %206 %205 - %207 = OpAccessChain %_ptr_Function_int %idx %uint_1 - %208 = OpLoad %int %207 - %209 = OpLoad %uint %tmp - %210 = OpAccessChain %_ptr_Uniform_uint %_ %int_0 %208 - OpStore %210 %209 - OpBranch %194 - %194 = OpLabel - OpReturn - OpFunctionEnd -%local_compare_and_swap_vi2_ = OpFunction %void None %28 - %idx_0 = OpFunctionParameter %_ptr_Function_v2int - %34 = OpLabel - %tmp_0 = OpVariable %_ptr_Function_uint Function - %219 = OpAccessChain %_ptr_Function_int %idx_0 %uint_0 - %220 = OpLoad %int %219 - %222 = OpAccessChain %_ptr_Workgroup_uint %local_value %220 - %223 = OpLoad %uint %222 - %224 = OpAccessChain %_ptr_Function_int %idx_0 %uint_1 - %225 = OpLoad %int %224 - %226 = OpAccessChain %_ptr_Workgroup_uint %local_value %225 - %227 = OpLoad %uint %226 - %228 = OpFunctionCall %bool %brighter_than_u1_u1_ %223 %227 - OpSelectionMerge %230 None - OpBranchConditional %228 %229 %230 - %229 = OpLabel - %232 = OpAccessChain %_ptr_Function_int %idx_0 %uint_0 - %233 = OpLoad %int %232 - %234 = OpAccessChain %_ptr_Workgroup_uint %local_value %233 - %235 = OpLoad %uint %234 - OpStore %tmp_0 %235 - %236 = OpAccessChain %_ptr_Function_int %idx_0 %uint_0 - %237 = OpLoad %int %236 - %238 = OpAccessChain %_ptr_Function_int %idx_0 %uint_1 - %239 = OpLoad %int %238 - %240 = OpAccessChain %_ptr_Workgroup_uint %local_value %239 - %241 = OpLoad %uint %240 - %242 = OpAccessChain %_ptr_Workgroup_uint %local_value %237 - OpStore %242 %241 - %243 = OpAccessChain %_ptr_Function_int %idx_0 %uint_1 - %244 = OpLoad %int %243 - %245 = OpLoad %uint %tmp_0 - %246 = OpAccessChain %_ptr_Workgroup_uint %local_value %244 - OpStore %246 %245 - OpBranch %230 - %230 = OpLabel - OpReturn - OpFunctionEnd -%big_flip_u1_ = OpFunction %void None %35 - %h = OpFunctionParameter %_ptr_Function_uint - %38 = OpLabel - %t_prime = OpVariable %_ptr_Function_uint Function - %half_h = OpVariable %_ptr_Function_uint Function - %q = OpVariable %_ptr_Function_uint Function - %x = OpVariable %_ptr_Function_uint Function - %y = OpVariable %_ptr_Function_uint Function - %param_3 = OpVariable %_ptr_Function_v2int Function - %251 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %252 = OpLoad %uint %251 - OpStore %t_prime %252 - %254 = OpLoad %uint %h - %256 = OpShiftRightLogical %uint %254 %int_1 - OpStore %half_h %256 - %258 = OpLoad %uint %t_prime - %259 = OpIMul %uint %uint_2 %258 - %260 = OpLoad %uint %h - %261 = OpUDiv %uint %259 %260 - %262 = OpLoad %uint %h - %263 = OpIMul %uint %261 %262 - OpStore %q %263 - %265 = OpLoad %uint %q - %266 = OpLoad %uint %t_prime - %267 = OpLoad %uint %half_h - %268 = OpUMod %uint %266 %267 - %269 = OpIAdd %uint %265 %268 - OpStore %x %269 - %271 = OpLoad %uint %q - %272 = OpLoad %uint %h - %273 = OpIAdd %uint %271 %272 - %274 = OpLoad %uint %t_prime - %275 = OpLoad %uint %half_h - %276 = OpUMod %uint %274 %275 - %277 = OpISub %uint %273 %276 - %278 = OpISub %uint %277 %uint_1 - OpStore %y %278 - %279 = OpLoad %uint %x - %280 = OpBitcast %int %279 - %281 = OpLoad %uint %y - %282 = OpBitcast %int %281 - %283 = OpCompositeConstruct %v2int %280 %282 - OpStore %param_3 %283 - %285 = OpFunctionCall %void %global_compare_and_swap_vi2_ %param_3 - OpReturn - OpFunctionEnd -%big_disperse_u1_ = OpFunction %void None %35 - %h_0 = OpFunctionParameter %_ptr_Function_uint - %41 = OpLabel - %t_prime_0 = OpVariable %_ptr_Function_uint Function - %half_h_0 = OpVariable %_ptr_Function_uint Function - %q_0 = OpVariable %_ptr_Function_uint Function - %x_0 = OpVariable %_ptr_Function_uint Function - %y_0 = OpVariable %_ptr_Function_uint Function - %param_4 = OpVariable %_ptr_Function_v2int Function - %287 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %288 = OpLoad %uint %287 - OpStore %t_prime_0 %288 - %290 = OpLoad %uint %h_0 - %291 = OpShiftRightLogical %uint %290 %int_1 - OpStore %half_h_0 %291 - %293 = OpLoad %uint %t_prime_0 - %294 = OpIMul %uint %uint_2 %293 - %295 = OpLoad %uint %h_0 - %296 = OpUDiv %uint %294 %295 - %297 = OpLoad %uint %h_0 - %298 = OpIMul %uint %296 %297 - OpStore %q_0 %298 - %300 = OpLoad %uint %q_0 - %301 = OpLoad %uint %t_prime_0 - %302 = OpLoad %uint %half_h_0 - %303 = OpUMod %uint %301 %302 - %304 = OpIAdd %uint %300 %303 - OpStore %x_0 %304 - %306 = OpLoad %uint %q_0 - %307 = OpLoad %uint %t_prime_0 - %308 = OpLoad %uint %half_h_0 - %309 = OpUMod %uint %307 %308 - %310 = OpIAdd %uint %306 %309 - %311 = OpLoad %uint %half_h_0 - %312 = OpIAdd %uint %310 %311 - OpStore %y_0 %312 - %313 = OpLoad %uint %x_0 - %314 = OpBitcast %int %313 - %315 = OpLoad %uint %y_0 - %316 = OpBitcast %int %315 - %317 = OpCompositeConstruct %v2int %314 %316 - OpStore %param_4 %317 - %319 = OpFunctionCall %void %global_compare_and_swap_vi2_ %param_4 - OpReturn - OpFunctionEnd -%local_flip_u1_ = OpFunction %void None %35 - %h_1 = OpFunctionParameter %_ptr_Function_uint - %44 = OpLabel - %t = OpVariable %_ptr_Function_uint Function - %half_h_1 = OpVariable %_ptr_Function_uint Function - %indices = OpVariable %_ptr_Function_v2int Function - %param_5 = OpVariable %_ptr_Function_v2int Function - %322 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %323 = OpLoad %uint %322 - OpStore %t %323 - OpControlBarrier %uint_2 %uint_2 %uint_264 - %326 = OpLoad %uint %h_1 - %327 = OpShiftRightLogical %uint %326 %int_1 - OpStore %half_h_1 %327 - %329 = OpLoad %uint %h_1 - %330 = OpLoad %uint %t - %331 = OpIMul %uint %uint_2 %330 - %332 = OpLoad %uint %h_1 - %333 = OpUDiv %uint %331 %332 - %334 = OpIMul %uint %329 %333 - %335 = OpBitcast %int %334 - %336 = OpCompositeConstruct %v2int %335 %335 - %337 = OpLoad %uint %t - %338 = OpLoad %uint %half_h_1 - %339 = OpUMod %uint %337 %338 - %340 = OpBitcast %int %339 - %341 = OpLoad %uint %h_1 - %342 = OpISub %uint %341 %uint_1 - %343 = OpLoad %uint %t - %344 = OpLoad %uint %half_h_1 - %345 = OpUMod %uint %343 %344 - %346 = OpISub %uint %342 %345 - %347 = OpBitcast %int %346 - %348 = OpCompositeConstruct %v2int %340 %347 - %349 = OpIAdd %v2int %336 %348 - OpStore %indices %349 - %351 = OpLoad %v2int %indices - OpStore %param_5 %351 - %352 = OpFunctionCall %void %local_compare_and_swap_vi2_ %param_5 - OpReturn - OpFunctionEnd -%local_disperse_u1_ = OpFunction %void None %35 - %h_2 = OpFunctionParameter %_ptr_Function_uint - %47 = OpLabel - %t_0 = OpVariable %_ptr_Function_uint Function - %half_h_2 = OpVariable %_ptr_Function_uint Function - %indices_0 = OpVariable %_ptr_Function_v2int Function - %param_6 = OpVariable %_ptr_Function_v2int Function - %354 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %355 = OpLoad %uint %354 - OpStore %t_0 %355 - OpBranch %356 - %356 = OpLabel - OpLoopMerge %358 %359 None - OpBranch %360 - %360 = OpLabel - %361 = OpLoad %uint %h_2 - %362 = OpUGreaterThan %bool %361 %uint_1 - OpBranchConditional %362 %357 %358 - %357 = OpLabel - OpControlBarrier %uint_2 %uint_2 %uint_264 - %364 = OpLoad %uint %h_2 - %365 = OpShiftRightLogical %uint %364 %int_1 - OpStore %half_h_2 %365 - %367 = OpLoad %uint %h_2 - %368 = OpLoad %uint %t_0 - %369 = OpIMul %uint %uint_2 %368 - %370 = OpLoad %uint %h_2 - %371 = OpUDiv %uint %369 %370 - %372 = OpIMul %uint %367 %371 - %373 = OpBitcast %int %372 - %374 = OpCompositeConstruct %v2int %373 %373 - %375 = OpLoad %uint %t_0 - %376 = OpLoad %uint %half_h_2 - %377 = OpUMod %uint %375 %376 - %378 = OpBitcast %int %377 - %379 = OpLoad %uint %half_h_2 - %380 = OpLoad %uint %t_0 - %381 = OpLoad %uint %half_h_2 - %382 = OpUMod %uint %380 %381 - %383 = OpIAdd %uint %379 %382 - %384 = OpBitcast %int %383 - %385 = OpCompositeConstruct %v2int %378 %384 - %386 = OpIAdd %v2int %374 %385 - OpStore %indices_0 %386 - %388 = OpLoad %v2int %indices_0 - OpStore %param_6 %388 - %389 = OpFunctionCall %void %local_compare_and_swap_vi2_ %param_6 - OpBranch %359 - %359 = OpLabel - %390 = OpLoad %uint %h_2 - %391 = OpUDiv %uint %390 %uint_2 - OpStore %h_2 %391 - OpBranch %356 - %358 = OpLabel - OpReturn - OpFunctionEnd -%local_bms_u1_ = OpFunction %void None %35 - %h_3 = OpFunctionParameter %_ptr_Function_uint - %50 = OpLabel - %t_1 = OpVariable %_ptr_Function_uint Function - %hh = OpVariable %_ptr_Function_uint Function - %param_7 = OpVariable %_ptr_Function_uint Function - %param_8 = OpVariable %_ptr_Function_uint Function - %393 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %394 = OpLoad %uint %393 - OpStore %t_1 %394 - OpStore %hh %uint_2 - OpBranch %396 - %396 = OpLabel - OpLoopMerge %398 %399 None - OpBranch %400 - %400 = OpLabel - %401 = OpLoad %uint %hh - %402 = OpLoad %uint %h_3 - %403 = OpULessThanEqual %bool %401 %402 - OpBranchConditional %403 %397 %398 - %397 = OpLabel - %405 = OpLoad %uint %hh - OpStore %param_7 %405 - %406 = OpFunctionCall %void %local_flip_u1_ %param_7 - %407 = OpLoad %uint %hh - %408 = OpUDiv %uint %407 %uint_2 - OpStore %param_8 %408 - %410 = OpFunctionCall %void %local_disperse_u1_ %param_8 - OpBranch %399 - %399 = OpLabel - %411 = OpLoad %uint %hh - %412 = OpShiftLeftLogical %uint %411 %int_1 - OpStore %hh %412 - OpBranch %396 - %398 = OpLabel - OpReturn - OpFunctionEnd diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/global_barrier.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/global_barrier.spv.dis deleted file mode 100644 index 37c596cfc8..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/global_barrier.spv.dis +++ /dev/null @@ -1,395 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Google Clspv; 0 -; Bound: 333 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_non_semantic_info" - %296 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %32 "global_barrier" %gl_LocalInvocationID %gl_WorkGroupID - OpSource OpenCL_C 200 - %297 = OpString "global_barrier" - %298 = OpString " __kernel" - %301 = OpString "count" - %304 = OpString "poll_open" - %307 = OpString "M" - %310 = OpString "now_serving" - %314 = OpString "next_ticket" - %318 = OpString "flag" - %322 = OpString "output_buf" - %326 = OpString "num_iters" - OpMemberDecorate %_struct_7 0 Offset 0 - OpDecorate %_struct_7 Block - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_20 0 Offset 0 - OpDecorate %_struct_20 Block - OpDecorate %22 DescriptorSet 0 - OpDecorate %22 Binding 0 - OpDecorate %22 Coherent - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 1 - OpDecorate %23 Coherent - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 2 - OpDecorate %24 Coherent - OpDecorate %25 DescriptorSet 0 - OpDecorate %25 Binding 3 - OpDecorate %25 Coherent - OpDecorate %26 DescriptorSet 0 - OpDecorate %26 Binding 4 - OpDecorate %26 Coherent - OpDecorate %27 DescriptorSet 0 - OpDecorate %27 Binding 5 - OpDecorate %27 Coherent - OpDecorate %28 DescriptorSet 0 - OpDecorate %28 Binding 6 - OpDecorate %28 Coherent - OpDecorate %29 DescriptorSet 0 - OpDecorate %29 Binding 7 - OpDecorate %_arr_uint_uint_1 ArrayStride 4 - OpDecorate %10 SpecId 0 - OpDecorate %11 SpecId 1 - OpDecorate %12 SpecId 2 - %uint = OpTypeInt 32 0 - %uint_1 = OpConstant %uint 1 -%_arr_uint_uint_1 = OpTypeArray %uint %uint_1 -%_ptr_Workgroup__arr_uint_uint_1 = OpTypePointer Workgroup %_arr_uint_uint_1 - %v3uint = OpTypeVector %uint 3 - %_struct_7 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_7 = OpTypePointer PushConstant %_struct_7 - %10 = OpSpecConstant %uint 1 - %11 = OpSpecConstant %uint 1 - %12 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %10 %11 %12 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_20 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_20 = OpTypePointer StorageBuffer %_struct_20 - %void = OpTypeVoid - %31 = OpTypeFunction %void -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint - %bool = OpTypeBool - %uint_64 = OpConstant %uint 64 - %uint_72 = OpConstant %uint 72 - %uint_66 = OpConstant %uint 66 -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint - %uint_68 = OpConstant %uint 68 -%_ptr_Workgroup_uint = OpTypePointer Workgroup %uint - %uint_2 = OpConstant %uint 2 - %uint_264 = OpConstant %uint 264 - %false = OpConstantFalse %bool - %true = OpConstantTrue %bool - %295 = OpUndef %uint - %uint_8 = OpConstant %uint 8 - %uint_3 = OpConstant %uint 3 - %uint_4 = OpConstant %uint 4 - %uint_5 = OpConstant %uint 5 - %uint_6 = OpConstant %uint 6 - %uint_7 = OpConstant %uint 7 - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_Workgroup__arr_uint_uint_1 Workgroup - %9 = OpVariable %_ptr_PushConstant__struct_7 PushConstant - %15 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input -%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input - %22 = OpVariable %_ptr_StorageBuffer__struct_20 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_20 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_20 StorageBuffer - %25 = OpVariable %_ptr_StorageBuffer__struct_20 StorageBuffer - %26 = OpVariable %_ptr_StorageBuffer__struct_20 StorageBuffer - %27 = OpVariable %_ptr_StorageBuffer__struct_20 StorageBuffer - %28 = OpVariable %_ptr_StorageBuffer__struct_20 StorageBuffer - %29 = OpVariable %_ptr_StorageBuffer__struct_20 StorageBuffer - %32 = OpFunction %void None %31 - %33 = OpLabel - %36 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %uint_0 - %37 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 - %38 = OpAccessChain %_ptr_StorageBuffer_uint %25 %uint_0 %uint_0 - %39 = OpAccessChain %_ptr_StorageBuffer_uint %26 %uint_0 %uint_0 - %40 = OpAccessChain %_ptr_StorageBuffer_uint %29 %uint_0 %uint_0 - %42 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %43 = OpLoad %uint %42 - %45 = OpIEqual %bool %43 %uint_0 - OpSelectionMerge %120 None - OpBranchConditional %45 %48 %120 - %48 = OpLabel - OpMemoryBarrier %uint_1 %uint_64 - %51 = OpAtomicIAdd %uint %39 %uint_1 %uint_72 %uint_1 - OpBranch %53 - %53 = OpLabel - %55 = OpAtomicLoad %uint %38 %uint_1 %uint_66 - %56 = OpINotEqual %bool %55 %51 - OpLoopMerge %64 %61 None - OpBranchConditional %56 %59 %61 - %59 = OpLabel - OpBranch %61 - %61 = OpLabel - %62 = OpPhi %bool %false %59 %true %53 - OpBranchConditional %62 %64 %53 - %64 = OpLabel - %65 = OpLoad %uint %37 - %66 = OpINotEqual %bool %65 %uint_0 - OpSelectionMerge %106 None - OpBranchConditional %66 %69 %106 - %69 = OpLabel - %70 = OpLoad %uint %36 - %71 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %72 = OpLoad %uint %71 - %74 = OpAccessChain %_ptr_PushConstant_uint %9 %uint_0 %uint_0 - %75 = OpLoad %uint %74 - %76 = OpIAdd %uint %72 %75 - %77 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %76 - OpStore %77 %70 - %78 = OpLoad %uint %36 - %79 = OpIAdd %uint %78 %uint_1 - OpStore %36 %79 - %80 = OpAtomicLoad %uint %38 %uint_1 %uint_66 - %81 = OpIAdd %uint %80 %uint_1 - OpAtomicStore %38 %uint_1 %uint_68 %81 - OpMemoryBarrier %uint_1 %uint_64 - %83 = OpAtomicIAdd %uint %39 %uint_1 %uint_72 %uint_1 - OpBranch %85 - %85 = OpLabel - %86 = OpAtomicLoad %uint %38 %uint_1 %uint_66 - %87 = OpINotEqual %bool %86 %83 - OpLoopMerge %95 %92 None - OpBranchConditional %87 %90 %92 - %90 = OpLabel - OpBranch %92 - %92 = OpLabel - %93 = OpPhi %bool %false %90 %true %85 - OpBranchConditional %93 %95 %85 - %95 = OpLabel - %96 = OpLoad %uint %37 - %97 = OpINotEqual %bool %96 %uint_0 - OpSelectionMerge %102 None - OpBranchConditional %97 %100 %102 - %100 = OpLabel - OpStore %37 %uint_0 - OpBranch %102 - %102 = OpLabel - %103 = OpAtomicLoad %uint %38 %uint_1 %uint_66 - %104 = OpIAdd %uint %103 %uint_1 - OpAtomicStore %38 %uint_1 %uint_68 %104 - OpBranch %106 - %106 = OpLabel - %107 = OpPhi %uint %uint_1 %102 %295 %64 - %108 = OpPhi %bool %false %102 %true %64 - OpSelectionMerge %115 None - OpBranchConditional %108 %111 %115 - %111 = OpLabel - %112 = OpAtomicLoad %uint %38 %uint_1 %uint_66 - %113 = OpIAdd %uint %112 %uint_1 - OpAtomicStore %38 %uint_1 %uint_68 %113 - OpBranch %115 - %115 = OpLabel - %116 = OpPhi %uint %uint_0 %111 %107 %106 - %118 = OpAccessChain %_ptr_Workgroup_uint %5 %uint_0 - OpStore %118 %116 - OpBranch %120 - %120 = OpLabel - OpBranch %122 - %122 = OpLabel - OpControlBarrier %uint_2 %uint_2 %uint_264 - %125 = OpAccessChain %_ptr_Workgroup_uint %5 %uint_0 - %126 = OpLoad %uint %125 - %127 = OpINotEqual %bool %126 %uint_0 - OpSelectionMerge %286 None - OpBranchConditional %127 %130 %286 - %130 = OpLabel - %131 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %132 = OpLoad %uint %131 - %133 = OpAccessChain %_ptr_PushConstant_uint %9 %uint_0 %uint_0 - %134 = OpLoad %uint %133 - %135 = OpIAdd %uint %132 %134 - %136 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %135 - %137 = OpLoad %uint %136 - %138 = OpLoad %uint %36 - OpBranch %140 - %140 = OpLabel - %141 = OpPhi %uint %281 %280 %uint_0 %130 - %142 = OpLoad %uint %40 - %143 = OpULessThan %bool %141 %142 - OpLoopMerge %284 %280 None - OpBranchConditional %143 %146 %280 - %146 = OpLabel - %147 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %148 = OpLoad %uint %147 - %149 = OpIEqual %bool %148 %uint_0 - OpSelectionMerge %159 None - OpBranchConditional %149 %152 %159 - %152 = OpLabel - %153 = OpIAdd %uint %137 %141 - %154 = OpUMod %uint %153 %138 - %155 = OpAccessChain %_ptr_StorageBuffer_uint %28 %uint_0 %154 - %156 = OpLoad %uint %155 - %157 = OpIAdd %uint %156 %uint_1 - OpStore %155 %157 - OpBranch %159 - %159 = OpLabel - %160 = OpINotEqual %bool %137 %uint_0 - OpSelectionMerge %189 None - OpBranchConditional %160 %163 %189 - %163 = OpLabel - OpControlBarrier %uint_2 %uint_2 %uint_72 - %164 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %165 = OpLoad %uint %164 - %166 = OpIEqual %bool %165 %uint_0 - OpSelectionMerge %185 None - OpBranchConditional %166 %169 %185 - %169 = OpLabel - %170 = OpAccessChain %_ptr_StorageBuffer_uint %27 %uint_0 %137 - OpAtomicStore %170 %uint_1 %uint_68 %uint_1 - OpBranch %172 - %172 = OpLabel - %173 = OpAccessChain %_ptr_StorageBuffer_uint %27 %uint_0 %137 - %174 = OpAtomicLoad %uint %173 %uint_1 %uint_66 - %175 = OpIEqual %bool %174 %uint_1 - OpLoopMerge %183 %180 None - OpBranchConditional %175 %178 %180 - %178 = OpLabel - OpBranch %180 - %180 = OpLabel - %181 = OpPhi %bool %false %178 %true %172 - OpBranchConditional %181 %183 %172 - %183 = OpLabel - OpBranch %185 - %185 = OpLabel - OpBranch %187 - %187 = OpLabel - OpControlBarrier %uint_2 %uint_2 %uint_72 - OpBranch %189 - %189 = OpLabel - %190 = OpPhi %bool %false %187 %true %159 - OpSelectionMerge %273 None - OpBranchConditional %190 %193 %273 - %193 = OpLabel - %194 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %195 = OpLoad %uint %194 - %196 = OpIAdd %uint %195 %uint_1 - %197 = OpULessThan %bool %196 %138 - OpSelectionMerge %236 None - OpBranchConditional %197 %200 %236 - %200 = OpLabel - %201 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %202 = OpLoad %uint %201 - %203 = OpIAdd %uint %202 %uint_1 - OpBranch %205 - %205 = OpLabel - %206 = OpPhi %uint %231 %230 %203 %200 - %207 = OpULessThan %bool %206 %138 - OpLoopMerge %234 %230 None - OpBranchConditional %207 %210 %230 - %210 = OpLabel - OpBranch %212 - %212 = OpLabel - %213 = OpAccessChain %_ptr_StorageBuffer_uint %27 %uint_0 %206 - %214 = OpAtomicLoad %uint %213 %uint_1 %uint_66 - %215 = OpIEqual %bool %214 %uint_0 - OpLoopMerge %223 %220 None - OpBranchConditional %215 %218 %220 - %218 = OpLabel - OpBranch %220 - %220 = OpLabel - %221 = OpPhi %bool %false %218 %true %212 - OpBranchConditional %221 %223 %212 - %223 = OpLabel - OpBranch %225 - %225 = OpLabel - %226 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %227 = OpCompositeExtract %uint %226 0 - %228 = OpIAdd %uint %206 %227 - OpBranch %230 - %230 = OpLabel - %231 = OpPhi %uint %228 %225 %295 %205 - %232 = OpPhi %bool %false %225 %true %205 - OpBranchConditional %232 %234 %205 - %234 = OpLabel - OpBranch %236 - %236 = OpLabel - OpBranch %238 - %238 = OpLabel - OpControlBarrier %uint_2 %uint_2 %uint_72 - %239 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %240 = OpLoad %uint %239 - %241 = OpIAdd %uint %240 %uint_1 - %242 = OpULessThan %bool %241 %138 - OpSelectionMerge %269 None - OpBranchConditional %242 %245 %269 - %245 = OpLabel - %246 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %247 = OpLoad %uint %246 - %248 = OpIAdd %uint %247 %uint_1 - OpBranch %250 - %250 = OpLabel - %251 = OpPhi %uint %264 %263 %248 %245 - %252 = OpULessThan %bool %251 %138 - OpLoopMerge %267 %263 None - OpBranchConditional %252 %255 %263 - %255 = OpLabel - %256 = OpAccessChain %_ptr_StorageBuffer_uint %27 %uint_0 %251 - OpAtomicStore %256 %uint_1 %uint_68 %uint_0 - OpBranch %258 - %258 = OpLabel - %259 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %260 = OpCompositeExtract %uint %259 0 - %261 = OpIAdd %uint %251 %260 - OpBranch %263 - %263 = OpLabel - %264 = OpPhi %uint %261 %258 %295 %250 - %265 = OpPhi %bool %false %258 %true %250 - OpBranchConditional %265 %267 %250 - %267 = OpLabel - OpBranch %269 - %269 = OpLabel - OpBranch %271 - %271 = OpLabel - OpBranch %273 - %273 = OpLabel - OpBranch %275 - %275 = OpLabel - OpBranch %277 - %277 = OpLabel - %278 = OpIAdd %uint %141 %uint_1 - OpBranch %280 - %280 = OpLabel - %281 = OpPhi %uint %278 %277 %295 %140 - %282 = OpPhi %bool %false %277 %true %140 - OpBranchConditional %282 %284 %140 - %284 = OpLabel - OpBranch %286 - %286 = OpLabel - %287 = OpPhi %bool %false %284 %true %122 - OpSelectionMerge %292 None - OpBranchConditional %287 %290 %292 - %290 = OpLabel - OpBranch %292 - %292 = OpLabel - OpReturn - OpFunctionEnd - %331 = OpExtInst %void %296 PushConstantRegionGroupOffset %uint_0 %uint_12 - %300 = OpExtInst %void %296 Kernel %32 %297 %uint_8 %uint_0 %298 - %302 = OpExtInst %void %296 ArgumentInfo %301 - %303 = OpExtInst %void %296 ArgumentStorageBuffer %300 %uint_0 %uint_0 %uint_0 %302 - %305 = OpExtInst %void %296 ArgumentInfo %304 - %306 = OpExtInst %void %296 ArgumentStorageBuffer %300 %uint_1 %uint_0 %uint_1 %305 - %308 = OpExtInst %void %296 ArgumentInfo %307 - %309 = OpExtInst %void %296 ArgumentStorageBuffer %300 %uint_2 %uint_0 %uint_2 %308 - %311 = OpExtInst %void %296 ArgumentInfo %310 - %313 = OpExtInst %void %296 ArgumentStorageBuffer %300 %uint_3 %uint_0 %uint_3 %311 - %315 = OpExtInst %void %296 ArgumentInfo %314 - %317 = OpExtInst %void %296 ArgumentStorageBuffer %300 %uint_4 %uint_0 %uint_4 %315 - %319 = OpExtInst %void %296 ArgumentInfo %318 - %321 = OpExtInst %void %296 ArgumentStorageBuffer %300 %uint_5 %uint_0 %uint_5 %319 - %323 = OpExtInst %void %296 ArgumentInfo %322 - %325 = OpExtInst %void %296 ArgumentStorageBuffer %300 %uint_6 %uint_0 %uint_6 %323 - %327 = OpExtInst %void %296 ArgumentInfo %326 - %329 = OpExtInst %void %296 ArgumentStorageBuffer %300 %uint_7 %uint_0 %uint_7 %327 - %332 = OpExtInst %void %296 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/iriw-acq-rel.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/iriw-acq-rel.spv.dis deleted file mode 100644 index cdeb63d052..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/iriw-acq-rel.spv.dis +++ /dev/null @@ -1,575 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 525 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %498 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %27 "litmus_test" %gl_LocalInvocationID %gl_WorkGroupID - OpSource OpenCL_C 200 - %499 = OpString "litmus_test" - %501 = OpString "test_locations" - %504 = OpString "read_results" - %507 = OpString "shuffled_workgroups" - %510 = OpString "barrier" - %513 = OpString "scratchpad" - %516 = OpString "scratch_locations" - %519 = OpString "stress_params" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_16 0 Offset 0 - OpDecorate %_struct_16 Block - OpDecorate %18 DescriptorSet 0 - OpDecorate %18 Binding 0 - OpDecorate %19 DescriptorSet 0 - OpDecorate %19 Binding 1 - OpDecorate %20 DescriptorSet 0 - OpDecorate %20 Binding 2 - OpDecorate %21 DescriptorSet 0 - OpDecorate %21 Binding 3 - OpDecorate %22 DescriptorSet 0 - OpDecorate %22 Binding 4 - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 5 - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 6 - OpDecorate %6 SpecId 0 - OpDecorate %7 SpecId 1 - OpDecorate %8 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 - %6 = OpSpecConstant %uint 1 - %7 = OpSpecConstant %uint 1 - %8 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %6 %7 %8 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_16 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_16 = OpTypePointer StorageBuffer %_struct_16 - %void = OpTypeVoid - %26 = OpTypeFunction %void -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint - %uint_9 = OpConstant %uint 9 - %bool = OpTypeBool - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 - %uint_100 = OpConstant %uint 100 -%uint_4294967295 = OpConstant %uint 4294967295 - %uint_7 = OpConstant %uint 7 -%uint_4294967294 = OpConstant %uint 4294967294 - %uint_8 = OpConstant %uint 8 - %uint_10 = OpConstant %uint 10 - %uint_11 = OpConstant %uint 11 - %uint_4 = OpConstant %uint 4 - %uint_5 = OpConstant %uint 5 - %uint_6 = OpConstant %uint 6 - %uint_64 = OpConstant %uint 64 - %uint_1023 = OpConstant %uint 1023 - %false = OpConstantFalse %bool - %uint_68 = OpConstant %uint 68 - %uint_66 = OpConstant %uint 66 - %true = OpConstantTrue %bool - %497 = OpUndef %uint - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant - %11 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input -%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input - %18 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %19 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %20 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %21 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %22 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %27 = OpFunction %void None %26 - %28 = OpLabel - %31 = OpAccessChain %_ptr_StorageBuffer_uint %21 %uint_0 %uint_0 - %32 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_0 - %34 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %35 = OpLoad %uint %34 - %37 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %38 = OpLoad %uint %37 - %39 = OpIAdd %uint %38 %35 - %40 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_0 %39 - %41 = OpLoad %uint %40 - %43 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_9 - %44 = OpLoad %uint %43 - %46 = OpUGreaterThanEqual %bool %41 %44 - OpSelectionMerge %203 None - OpBranchConditional %46 %49 %203 - %49 = OpLabel - %51 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_1 - %52 = OpLoad %uint %51 - %53 = OpINotEqual %bool %52 %uint_0 - OpSelectionMerge %201 None - OpBranchConditional %53 %56 %201 - %56 = OpLabel - %58 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_2 - %59 = OpLoad %uint %58 - %61 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_3 - %62 = OpLoad %uint %61 - %63 = OpINotEqual %bool %59 %uint_0 - OpSelectionMerge %199 None - OpBranchConditional %63 %66 %199 - %66 = OpLabel - %67 = OpPhi %uint %194 %193 %uint_0 %56 - OpLoopMerge %197 %193 None - OpBranch %70 - %70 = OpLabel - %71 = OpSGreaterThanEqual %bool %62 %uint_2 - OpSelectionMerge %124 None - OpBranchConditional %71 %74 %124 - %74 = OpLabel - %75 = OpSGreaterThanEqual %bool %62 %uint_3 - OpSelectionMerge %98 None - OpBranchConditional %75 %78 %98 - %78 = OpLabel - %79 = OpIEqual %bool %62 %uint_3 - OpSelectionMerge %95 None - OpBranchConditional %79 %82 %95 - %82 = OpLabel - %83 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %84 = OpLoad %uint %83 - %85 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %86 = OpLoad %uint %85 - %87 = OpIAdd %uint %86 %84 - %88 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %87 - %89 = OpLoad %uint %88 - %90 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %89 - %91 = OpLoad %uint %90 - %93 = OpULessThanEqual %bool %91 %uint_100 - OpBranch %95 - %95 = OpLabel - %96 = OpPhi %bool %93 %82 %true %78 - OpBranch %98 - %98 = OpLabel - %99 = OpPhi %bool %96 %95 %false %74 - %100 = OpPhi %bool %false %95 %true %74 - OpSelectionMerge %121 None - OpBranchConditional %100 %103 %121 - %103 = OpLabel - %104 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %105 = OpLoad %uint %104 - %106 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %107 = OpLoad %uint %106 - %108 = OpIAdd %uint %107 %105 - %109 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %108 - %110 = OpLoad %uint %109 - %111 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %110 - %112 = OpLoad %uint %111 - %113 = OpULessThanEqual %bool %112 %uint_100 - OpSelectionMerge %118 None - OpBranchConditional %113 %116 %118 - %116 = OpLabel - OpStore %111 %67 - OpBranch %118 - %118 = OpLabel - %119 = OpPhi %bool %true %116 %99 %103 - OpBranch %121 - %121 = OpLabel - %122 = OpPhi %bool %119 %118 %99 %98 - OpBranch %124 - %124 = OpLabel - %125 = OpPhi %bool %122 %121 %false %70 - %126 = OpPhi %bool %false %121 %true %70 - OpSelectionMerge %186 None - OpBranchConditional %126 %129 %186 - %129 = OpLabel - %130 = OpSGreaterThanEqual %bool %62 %uint_1 - OpSelectionMerge %153 None - OpBranchConditional %130 %133 %153 - %133 = OpLabel - %134 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %135 = OpLoad %uint %134 - %136 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %137 = OpLoad %uint %136 - %138 = OpIAdd %uint %137 %135 - %139 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %138 - %140 = OpLoad %uint %139 - %141 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %140 - OpStore %141 %67 - %142 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %143 = OpLoad %uint %142 - %144 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %145 = OpLoad %uint %144 - %146 = OpIAdd %uint %145 %143 - %147 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %146 - %148 = OpLoad %uint %147 - %149 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %148 - %150 = OpLoad %uint %149 - %151 = OpULessThanEqual %bool %150 %uint_100 - OpBranch %153 - %153 = OpLabel - %154 = OpPhi %bool %151 %133 %125 %129 - %155 = OpPhi %bool %false %133 %true %129 - OpSelectionMerge %183 None - OpBranchConditional %155 %158 %183 - %158 = OpLabel - %159 = OpIEqual %bool %62 %uint_0 - OpSelectionMerge %181 None - OpBranchConditional %159 %162 %181 - %162 = OpLabel - %163 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %164 = OpLoad %uint %163 - %165 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %166 = OpLoad %uint %165 - %167 = OpIAdd %uint %166 %164 - %168 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %167 - %169 = OpLoad %uint %168 - %170 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %169 - OpStore %170 %67 - %171 = OpIAdd %uint %67 %uint_1 - %172 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %173 = OpLoad %uint %172 - %174 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %175 = OpLoad %uint %174 - %176 = OpIAdd %uint %175 %173 - %177 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %176 - %178 = OpLoad %uint %177 - %179 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %178 - OpStore %179 %171 - OpBranch %181 - %181 = OpLabel - OpBranch %183 - %183 = OpLabel - %184 = OpPhi %bool %true %181 %154 %153 - OpBranch %186 - %186 = OpLabel - %187 = OpPhi %bool %184 %183 %125 %124 - OpBranchConditional %187 %189 %193 - %189 = OpLabel - %190 = OpIAdd %uint %67 %uint_1 - %191 = OpUGreaterThanEqual %bool %190 %59 - OpBranch %193 - %193 = OpLabel - %194 = OpPhi %uint %190 %189 %497 %186 - %195 = OpPhi %bool %191 %189 %true %186 - OpBranchConditional %195 %197 %66 - %197 = OpLabel - OpBranch %199 - %199 = OpLabel - OpBranch %201 - %201 = OpLabel - OpBranch %203 - %203 = OpLabel - %204 = OpPhi %bool %false %201 %true %28 - OpSelectionMerge %493 None - OpBranchConditional %204 %207 %493 - %207 = OpLabel - %208 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %209 = OpCompositeExtract %uint %208 0 - %210 = OpIMul %uint %209 %44 - %211 = OpShiftRightLogical %uint %210 %uint_1 - %212 = OpIMul %uint %209 %41 - %213 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %214 = OpLoad %uint %213 - %215 = OpIAdd %uint %212 %214 - %216 = OpUMod %uint %215 %211 - %217 = OpULessThanEqual %bool %211 %215 - %218 = OpIAdd %uint %41 %uint_1 - %220 = OpIAdd %uint %44 %uint_4294967295 - %221 = OpUMod %uint %214 %220 - %222 = OpIAdd %uint %218 %221 - %223 = OpUMod %uint %222 %44 - %224 = OpIMul %uint %223 %209 - %226 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_7 - %227 = OpLoad %uint %226 - %228 = OpIMul %uint %227 %214 - %229 = OpUMod %uint %228 %209 - %230 = OpIAdd %uint %229 %224 - %232 = OpBitwiseAnd %uint %210 %uint_4294967294 - %233 = OpUMod %uint %230 %232 - %234 = OpUMod %uint %233 %211 - %235 = OpULessThanEqual %bool %211 %233 - OpSelectionMerge %254 None - OpBranchConditional %217 %238 %254 - %238 = OpLabel - %240 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_8 - %241 = OpLoad %uint %240 - %242 = OpIMul %uint %241 %216 - %243 = OpUMod %uint %242 %211 - %245 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %246 = OpLoad %uint %245 - %247 = OpShiftLeftLogical %uint %243 %uint_1 - %248 = OpIMul %uint %247 %246 - %250 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_11 - %251 = OpLoad %uint %250 - %252 = OpIAdd %uint %248 %251 - OpBranch %254 - %254 = OpLabel - %255 = OpPhi %uint %252 %238 %497 %207 - %256 = OpPhi %uint %246 %238 %497 %207 - %257 = OpPhi %bool %false %238 %true %207 - OpSelectionMerge %266 None - OpBranchConditional %257 %260 %266 - %260 = OpLabel - %261 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %262 = OpLoad %uint %261 - %263 = OpShiftLeftLogical %uint %216 %uint_1 - %264 = OpIMul %uint %263 %262 - OpBranch %266 - %266 = OpLabel - %267 = OpPhi %uint %262 %260 %256 %254 - %268 = OpPhi %uint %264 %260 %255 %254 - %269 = OpShiftLeftLogical %uint %234 %uint_1 - %270 = OpIMul %uint %269 %267 - %271 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_8 - %272 = OpLoad %uint %271 - %273 = OpIMul %uint %272 %234 - %274 = OpUMod %uint %273 %211 - %275 = OpShiftLeftLogical %uint %267 %uint_1 - %276 = OpIMul %uint %275 %274 - %277 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_11 - %278 = OpLoad %uint %277 - %279 = OpIAdd %uint %276 %278 - %281 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_4 - %282 = OpLoad %uint %281 - %283 = OpINotEqual %bool %282 %uint_0 - OpSelectionMerge %430 None - OpBranchConditional %283 %286 %430 - %286 = OpLabel - %288 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_5 - %289 = OpLoad %uint %288 - %291 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_6 - %292 = OpLoad %uint %291 - %293 = OpINotEqual %bool %289 %uint_0 - OpSelectionMerge %428 None - OpBranchConditional %293 %296 %428 - %296 = OpLabel - %297 = OpPhi %uint %423 %422 %uint_0 %286 - OpLoopMerge %426 %422 None - OpBranch %300 - %300 = OpLabel - %301 = OpSGreaterThanEqual %bool %292 %uint_2 - OpSelectionMerge %353 None - OpBranchConditional %301 %304 %353 - %304 = OpLabel - %305 = OpSGreaterThanEqual %bool %292 %uint_3 - OpSelectionMerge %327 None - OpBranchConditional %305 %308 %327 - %308 = OpLabel - %309 = OpIEqual %bool %292 %uint_3 - OpSelectionMerge %324 None - OpBranchConditional %309 %312 %324 - %312 = OpLabel - %313 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %314 = OpLoad %uint %313 - %315 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %316 = OpLoad %uint %315 - %317 = OpIAdd %uint %316 %314 - %318 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %317 - %319 = OpLoad %uint %318 - %320 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %319 - %321 = OpLoad %uint %320 - %322 = OpULessThanEqual %bool %321 %uint_100 - OpBranch %324 - %324 = OpLabel - %325 = OpPhi %bool %322 %312 %true %308 - OpBranch %327 - %327 = OpLabel - %328 = OpPhi %bool %325 %324 %false %304 - %329 = OpPhi %bool %false %324 %true %304 - OpSelectionMerge %350 None - OpBranchConditional %329 %332 %350 - %332 = OpLabel - %333 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %334 = OpLoad %uint %333 - %335 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %336 = OpLoad %uint %335 - %337 = OpIAdd %uint %336 %334 - %338 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %337 - %339 = OpLoad %uint %338 - %340 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %339 - %341 = OpLoad %uint %340 - %342 = OpULessThanEqual %bool %341 %uint_100 - OpSelectionMerge %347 None - OpBranchConditional %342 %345 %347 - %345 = OpLabel - OpStore %340 %297 - OpBranch %347 - %347 = OpLabel - %348 = OpPhi %bool %true %345 %328 %332 - OpBranch %350 - %350 = OpLabel - %351 = OpPhi %bool %348 %347 %328 %327 - OpBranch %353 - %353 = OpLabel - %354 = OpPhi %bool %351 %350 %false %300 - %355 = OpPhi %bool %false %350 %true %300 - OpSelectionMerge %415 None - OpBranchConditional %355 %358 %415 - %358 = OpLabel - %359 = OpSGreaterThanEqual %bool %292 %uint_1 - OpSelectionMerge %382 None - OpBranchConditional %359 %362 %382 - %362 = OpLabel - %363 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %364 = OpLoad %uint %363 - %365 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %366 = OpLoad %uint %365 - %367 = OpIAdd %uint %366 %364 - %368 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %367 - %369 = OpLoad %uint %368 - %370 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %369 - OpStore %370 %297 - %371 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %372 = OpLoad %uint %371 - %373 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %374 = OpLoad %uint %373 - %375 = OpIAdd %uint %374 %372 - %376 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %375 - %377 = OpLoad %uint %376 - %378 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %377 - %379 = OpLoad %uint %378 - %380 = OpULessThanEqual %bool %379 %uint_100 - OpBranch %382 - %382 = OpLabel - %383 = OpPhi %bool %380 %362 %354 %358 - %384 = OpPhi %bool %false %362 %true %358 - OpSelectionMerge %412 None - OpBranchConditional %384 %387 %412 - %387 = OpLabel - %388 = OpIEqual %bool %292 %uint_0 - OpSelectionMerge %410 None - OpBranchConditional %388 %391 %410 - %391 = OpLabel - %392 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %393 = OpLoad %uint %392 - %394 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %395 = OpLoad %uint %394 - %396 = OpIAdd %uint %395 %393 - %397 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %396 - %398 = OpLoad %uint %397 - %399 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %398 - OpStore %399 %297 - %400 = OpIAdd %uint %297 %uint_1 - %401 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %402 = OpLoad %uint %401 - %403 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %404 = OpLoad %uint %403 - %405 = OpIAdd %uint %404 %402 - %406 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %405 - %407 = OpLoad %uint %406 - %408 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %407 - OpStore %408 %400 - OpBranch %410 - %410 = OpLabel - OpBranch %412 - %412 = OpLabel - %413 = OpPhi %bool %true %410 %383 %382 - OpBranch %415 - %415 = OpLabel - %416 = OpPhi %bool %413 %412 %354 %353 - OpBranchConditional %416 %418 %422 - %418 = OpLabel - %419 = OpIAdd %uint %297 %uint_1 - %420 = OpUGreaterThanEqual %bool %419 %289 - OpBranch %422 - %422 = OpLabel - %423 = OpPhi %uint %419 %418 %497 %415 - %424 = OpPhi %bool %420 %418 %true %415 - OpBranchConditional %424 %426 %296 - %426 = OpLabel - OpBranch %428 - %428 = OpLabel - OpBranch %430 - %430 = OpLabel - %431 = OpLoad %uint %32 - %432 = OpINotEqual %bool %431 %uint_0 - OpSelectionMerge %461 None - OpBranchConditional %432 %435 %461 - %435 = OpLabel - %436 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %437 = OpCompositeExtract %uint %436 0 - %438 = OpLoad %uint %43 - %439 = OpIMul %uint %437 %438 - %441 = OpAtomicIAdd %uint %31 %uint_1 %uint_64 %uint_1 - %442 = OpULessThan %bool %441 %439 - OpSelectionMerge %459 None - OpBranchConditional %442 %445 %459 - %445 = OpLabel - %446 = OpPhi %uint %448 %445 %uint_0 %435 - %447 = OpAtomicLoad %uint %31 %uint_1 %uint_64 - %448 = OpIAdd %uint %446 %uint_1 - %450 = OpULessThan %bool %446 %uint_1023 - %451 = OpULessThan %bool %447 %439 - %453 = OpSelect %bool %450 %451 %false - %454 = OpLogicalNot %bool %453 - OpLoopMerge %457 %445 None - OpBranchConditional %454 %457 %445 - %457 = OpLabel - OpBranch %459 - %459 = OpLabel - OpBranch %461 - %461 = OpLabel - %462 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %268 - OpAtomicStore %462 %uint_1 %uint_68 %uint_1 - %464 = OpShiftLeftLogical %uint %234 %uint_2 - OpSelectionMerge %478 None - OpBranchConditional %235 %467 %478 - %467 = OpLabel - %468 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %279 - %470 = OpAtomicLoad %uint %468 %uint_1 %uint_66 - %471 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %270 - %472 = OpAtomicLoad %uint %471 %uint_1 %uint_64 - %473 = OpBitwiseOr %uint %464 %uint_3 - %474 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %473 - OpAtomicStore %474 %uint_1 %uint_68 %472 - %475 = OpBitwiseOr %uint %464 %uint_2 - %476 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %475 - OpAtomicStore %476 %uint_1 %uint_68 %470 - OpBranch %478 - %478 = OpLabel - %479 = OpPhi %bool %false %467 %true %461 - OpSelectionMerge %491 None - OpBranchConditional %479 %482 %491 - %482 = OpLabel - %483 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %270 - %484 = OpAtomicLoad %uint %483 %uint_1 %uint_66 - %485 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %279 - %486 = OpAtomicLoad %uint %485 %uint_1 %uint_64 - %487 = OpBitwiseOr %uint %464 %uint_1 - %488 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %487 - OpAtomicStore %488 %uint_1 %uint_68 %486 - %489 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %464 - OpAtomicStore %489 %uint_1 %uint_68 %484 - OpBranch %491 - %491 = OpLabel - OpBranch %493 - %493 = OpLabel - OpBranch %495 - %495 = OpLabel - OpReturn - OpFunctionEnd - %523 = OpExtInst %void %498 PushConstantRegionGroupOffset %uint_0 %uint_12 - %500 = OpExtInst %void %498 Kernel %27 %499 %uint_7 - %502 = OpExtInst %void %498 ArgumentInfo %501 - %503 = OpExtInst %void %498 ArgumentStorageBuffer %500 %uint_0 %uint_0 %uint_0 %502 - %505 = OpExtInst %void %498 ArgumentInfo %504 - %506 = OpExtInst %void %498 ArgumentStorageBuffer %500 %uint_1 %uint_0 %uint_1 %505 - %508 = OpExtInst %void %498 ArgumentInfo %507 - %509 = OpExtInst %void %498 ArgumentStorageBuffer %500 %uint_2 %uint_0 %uint_2 %508 - %511 = OpExtInst %void %498 ArgumentInfo %510 - %512 = OpExtInst %void %498 ArgumentStorageBuffer %500 %uint_3 %uint_0 %uint_3 %511 - %514 = OpExtInst %void %498 ArgumentInfo %513 - %515 = OpExtInst %void %498 ArgumentStorageBuffer %500 %uint_4 %uint_0 %uint_4 %514 - %517 = OpExtInst %void %498 ArgumentInfo %516 - %518 = OpExtInst %void %498 ArgumentStorageBuffer %500 %uint_5 %uint_0 %uint_5 %517 - %520 = OpExtInst %void %498 ArgumentInfo %519 - %521 = OpExtInst %void %498 ArgumentStorageBuffer %500 %uint_6 %uint_0 %uint_6 %520 - %524 = OpExtInst %void %498 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/iriw-acq.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/iriw-acq.spv.dis deleted file mode 100644 index 491bac7d92..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/iriw-acq.spv.dis +++ /dev/null @@ -1,575 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 525 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %498 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %27 "litmus_test" %gl_LocalInvocationID %gl_WorkGroupID - OpSource OpenCL_C 200 - %499 = OpString "litmus_test" - %501 = OpString "test_locations" - %504 = OpString "read_results" - %507 = OpString "shuffled_workgroups" - %510 = OpString "barrier" - %513 = OpString "scratchpad" - %516 = OpString "scratch_locations" - %519 = OpString "stress_params" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_16 0 Offset 0 - OpDecorate %_struct_16 Block - OpDecorate %18 DescriptorSet 0 - OpDecorate %18 Binding 0 - OpDecorate %19 DescriptorSet 0 - OpDecorate %19 Binding 1 - OpDecorate %20 DescriptorSet 0 - OpDecorate %20 Binding 2 - OpDecorate %21 DescriptorSet 0 - OpDecorate %21 Binding 3 - OpDecorate %22 DescriptorSet 0 - OpDecorate %22 Binding 4 - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 5 - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 6 - OpDecorate %6 SpecId 0 - OpDecorate %7 SpecId 1 - OpDecorate %8 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 - %6 = OpSpecConstant %uint 1 - %7 = OpSpecConstant %uint 1 - %8 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %6 %7 %8 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_16 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_16 = OpTypePointer StorageBuffer %_struct_16 - %void = OpTypeVoid - %26 = OpTypeFunction %void -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint - %uint_9 = OpConstant %uint 9 - %bool = OpTypeBool - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 - %uint_100 = OpConstant %uint 100 -%uint_4294967295 = OpConstant %uint 4294967295 - %uint_7 = OpConstant %uint 7 -%uint_4294967294 = OpConstant %uint 4294967294 - %uint_8 = OpConstant %uint 8 - %uint_10 = OpConstant %uint 10 - %uint_11 = OpConstant %uint 11 - %uint_4 = OpConstant %uint 4 - %uint_5 = OpConstant %uint 5 - %uint_6 = OpConstant %uint 6 - %uint_64 = OpConstant %uint 64 - %uint_1023 = OpConstant %uint 1023 - %false = OpConstantFalse %bool - %uint_66 = OpConstant %uint 66 - %uint_68 = OpConstant %uint 68 - %true = OpConstantTrue %bool - %497 = OpUndef %uint - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant - %11 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input -%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input - %18 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %19 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %20 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %21 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %22 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %27 = OpFunction %void None %26 - %28 = OpLabel - %31 = OpAccessChain %_ptr_StorageBuffer_uint %21 %uint_0 %uint_0 - %32 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_0 - %34 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %35 = OpLoad %uint %34 - %37 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %38 = OpLoad %uint %37 - %39 = OpIAdd %uint %38 %35 - %40 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_0 %39 - %41 = OpLoad %uint %40 - %43 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_9 - %44 = OpLoad %uint %43 - %46 = OpUGreaterThanEqual %bool %41 %44 - OpSelectionMerge %203 None - OpBranchConditional %46 %49 %203 - %49 = OpLabel - %51 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_1 - %52 = OpLoad %uint %51 - %53 = OpINotEqual %bool %52 %uint_0 - OpSelectionMerge %201 None - OpBranchConditional %53 %56 %201 - %56 = OpLabel - %58 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_2 - %59 = OpLoad %uint %58 - %61 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_3 - %62 = OpLoad %uint %61 - %63 = OpINotEqual %bool %59 %uint_0 - OpSelectionMerge %199 None - OpBranchConditional %63 %66 %199 - %66 = OpLabel - %67 = OpPhi %uint %194 %193 %uint_0 %56 - OpLoopMerge %197 %193 None - OpBranch %70 - %70 = OpLabel - %71 = OpSGreaterThanEqual %bool %62 %uint_2 - OpSelectionMerge %124 None - OpBranchConditional %71 %74 %124 - %74 = OpLabel - %75 = OpSGreaterThanEqual %bool %62 %uint_3 - OpSelectionMerge %98 None - OpBranchConditional %75 %78 %98 - %78 = OpLabel - %79 = OpIEqual %bool %62 %uint_3 - OpSelectionMerge %95 None - OpBranchConditional %79 %82 %95 - %82 = OpLabel - %83 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %84 = OpLoad %uint %83 - %85 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %86 = OpLoad %uint %85 - %87 = OpIAdd %uint %86 %84 - %88 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %87 - %89 = OpLoad %uint %88 - %90 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %89 - %91 = OpLoad %uint %90 - %93 = OpULessThanEqual %bool %91 %uint_100 - OpBranch %95 - %95 = OpLabel - %96 = OpPhi %bool %93 %82 %true %78 - OpBranch %98 - %98 = OpLabel - %99 = OpPhi %bool %96 %95 %false %74 - %100 = OpPhi %bool %false %95 %true %74 - OpSelectionMerge %121 None - OpBranchConditional %100 %103 %121 - %103 = OpLabel - %104 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %105 = OpLoad %uint %104 - %106 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %107 = OpLoad %uint %106 - %108 = OpIAdd %uint %107 %105 - %109 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %108 - %110 = OpLoad %uint %109 - %111 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %110 - %112 = OpLoad %uint %111 - %113 = OpULessThanEqual %bool %112 %uint_100 - OpSelectionMerge %118 None - OpBranchConditional %113 %116 %118 - %116 = OpLabel - OpStore %111 %67 - OpBranch %118 - %118 = OpLabel - %119 = OpPhi %bool %true %116 %99 %103 - OpBranch %121 - %121 = OpLabel - %122 = OpPhi %bool %119 %118 %99 %98 - OpBranch %124 - %124 = OpLabel - %125 = OpPhi %bool %122 %121 %false %70 - %126 = OpPhi %bool %false %121 %true %70 - OpSelectionMerge %186 None - OpBranchConditional %126 %129 %186 - %129 = OpLabel - %130 = OpSGreaterThanEqual %bool %62 %uint_1 - OpSelectionMerge %153 None - OpBranchConditional %130 %133 %153 - %133 = OpLabel - %134 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %135 = OpLoad %uint %134 - %136 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %137 = OpLoad %uint %136 - %138 = OpIAdd %uint %137 %135 - %139 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %138 - %140 = OpLoad %uint %139 - %141 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %140 - OpStore %141 %67 - %142 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %143 = OpLoad %uint %142 - %144 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %145 = OpLoad %uint %144 - %146 = OpIAdd %uint %145 %143 - %147 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %146 - %148 = OpLoad %uint %147 - %149 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %148 - %150 = OpLoad %uint %149 - %151 = OpULessThanEqual %bool %150 %uint_100 - OpBranch %153 - %153 = OpLabel - %154 = OpPhi %bool %151 %133 %125 %129 - %155 = OpPhi %bool %false %133 %true %129 - OpSelectionMerge %183 None - OpBranchConditional %155 %158 %183 - %158 = OpLabel - %159 = OpIEqual %bool %62 %uint_0 - OpSelectionMerge %181 None - OpBranchConditional %159 %162 %181 - %162 = OpLabel - %163 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %164 = OpLoad %uint %163 - %165 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %166 = OpLoad %uint %165 - %167 = OpIAdd %uint %166 %164 - %168 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %167 - %169 = OpLoad %uint %168 - %170 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %169 - OpStore %170 %67 - %171 = OpIAdd %uint %67 %uint_1 - %172 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %173 = OpLoad %uint %172 - %174 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %175 = OpLoad %uint %174 - %176 = OpIAdd %uint %175 %173 - %177 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %176 - %178 = OpLoad %uint %177 - %179 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %178 - OpStore %179 %171 - OpBranch %181 - %181 = OpLabel - OpBranch %183 - %183 = OpLabel - %184 = OpPhi %bool %true %181 %154 %153 - OpBranch %186 - %186 = OpLabel - %187 = OpPhi %bool %184 %183 %125 %124 - OpBranchConditional %187 %189 %193 - %189 = OpLabel - %190 = OpIAdd %uint %67 %uint_1 - %191 = OpUGreaterThanEqual %bool %190 %59 - OpBranch %193 - %193 = OpLabel - %194 = OpPhi %uint %190 %189 %497 %186 - %195 = OpPhi %bool %191 %189 %true %186 - OpBranchConditional %195 %197 %66 - %197 = OpLabel - OpBranch %199 - %199 = OpLabel - OpBranch %201 - %201 = OpLabel - OpBranch %203 - %203 = OpLabel - %204 = OpPhi %bool %false %201 %true %28 - OpSelectionMerge %493 None - OpBranchConditional %204 %207 %493 - %207 = OpLabel - %208 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %209 = OpCompositeExtract %uint %208 0 - %210 = OpIMul %uint %209 %44 - %211 = OpShiftRightLogical %uint %210 %uint_1 - %212 = OpIMul %uint %209 %41 - %213 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %214 = OpLoad %uint %213 - %215 = OpIAdd %uint %212 %214 - %216 = OpUMod %uint %215 %211 - %217 = OpULessThanEqual %bool %211 %215 - %218 = OpIAdd %uint %41 %uint_1 - %220 = OpIAdd %uint %44 %uint_4294967295 - %221 = OpUMod %uint %214 %220 - %222 = OpIAdd %uint %218 %221 - %223 = OpUMod %uint %222 %44 - %224 = OpIMul %uint %223 %209 - %226 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_7 - %227 = OpLoad %uint %226 - %228 = OpIMul %uint %227 %214 - %229 = OpUMod %uint %228 %209 - %230 = OpIAdd %uint %229 %224 - %232 = OpBitwiseAnd %uint %210 %uint_4294967294 - %233 = OpUMod %uint %230 %232 - %234 = OpUMod %uint %233 %211 - %235 = OpULessThanEqual %bool %211 %233 - OpSelectionMerge %254 None - OpBranchConditional %217 %238 %254 - %238 = OpLabel - %240 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_8 - %241 = OpLoad %uint %240 - %242 = OpIMul %uint %241 %216 - %243 = OpUMod %uint %242 %211 - %245 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %246 = OpLoad %uint %245 - %247 = OpShiftLeftLogical %uint %243 %uint_1 - %248 = OpIMul %uint %247 %246 - %250 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_11 - %251 = OpLoad %uint %250 - %252 = OpIAdd %uint %248 %251 - OpBranch %254 - %254 = OpLabel - %255 = OpPhi %uint %252 %238 %497 %207 - %256 = OpPhi %uint %246 %238 %497 %207 - %257 = OpPhi %bool %false %238 %true %207 - OpSelectionMerge %266 None - OpBranchConditional %257 %260 %266 - %260 = OpLabel - %261 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %262 = OpLoad %uint %261 - %263 = OpShiftLeftLogical %uint %216 %uint_1 - %264 = OpIMul %uint %263 %262 - OpBranch %266 - %266 = OpLabel - %267 = OpPhi %uint %262 %260 %256 %254 - %268 = OpPhi %uint %264 %260 %255 %254 - %269 = OpShiftLeftLogical %uint %234 %uint_1 - %270 = OpIMul %uint %269 %267 - %271 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_8 - %272 = OpLoad %uint %271 - %273 = OpIMul %uint %272 %234 - %274 = OpUMod %uint %273 %211 - %275 = OpShiftLeftLogical %uint %267 %uint_1 - %276 = OpIMul %uint %275 %274 - %277 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_11 - %278 = OpLoad %uint %277 - %279 = OpIAdd %uint %276 %278 - %281 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_4 - %282 = OpLoad %uint %281 - %283 = OpINotEqual %bool %282 %uint_0 - OpSelectionMerge %430 None - OpBranchConditional %283 %286 %430 - %286 = OpLabel - %288 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_5 - %289 = OpLoad %uint %288 - %291 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_6 - %292 = OpLoad %uint %291 - %293 = OpINotEqual %bool %289 %uint_0 - OpSelectionMerge %428 None - OpBranchConditional %293 %296 %428 - %296 = OpLabel - %297 = OpPhi %uint %423 %422 %uint_0 %286 - OpLoopMerge %426 %422 None - OpBranch %300 - %300 = OpLabel - %301 = OpSGreaterThanEqual %bool %292 %uint_2 - OpSelectionMerge %353 None - OpBranchConditional %301 %304 %353 - %304 = OpLabel - %305 = OpSGreaterThanEqual %bool %292 %uint_3 - OpSelectionMerge %327 None - OpBranchConditional %305 %308 %327 - %308 = OpLabel - %309 = OpIEqual %bool %292 %uint_3 - OpSelectionMerge %324 None - OpBranchConditional %309 %312 %324 - %312 = OpLabel - %313 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %314 = OpLoad %uint %313 - %315 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %316 = OpLoad %uint %315 - %317 = OpIAdd %uint %316 %314 - %318 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %317 - %319 = OpLoad %uint %318 - %320 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %319 - %321 = OpLoad %uint %320 - %322 = OpULessThanEqual %bool %321 %uint_100 - OpBranch %324 - %324 = OpLabel - %325 = OpPhi %bool %322 %312 %true %308 - OpBranch %327 - %327 = OpLabel - %328 = OpPhi %bool %325 %324 %false %304 - %329 = OpPhi %bool %false %324 %true %304 - OpSelectionMerge %350 None - OpBranchConditional %329 %332 %350 - %332 = OpLabel - %333 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %334 = OpLoad %uint %333 - %335 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %336 = OpLoad %uint %335 - %337 = OpIAdd %uint %336 %334 - %338 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %337 - %339 = OpLoad %uint %338 - %340 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %339 - %341 = OpLoad %uint %340 - %342 = OpULessThanEqual %bool %341 %uint_100 - OpSelectionMerge %347 None - OpBranchConditional %342 %345 %347 - %345 = OpLabel - OpStore %340 %297 - OpBranch %347 - %347 = OpLabel - %348 = OpPhi %bool %true %345 %328 %332 - OpBranch %350 - %350 = OpLabel - %351 = OpPhi %bool %348 %347 %328 %327 - OpBranch %353 - %353 = OpLabel - %354 = OpPhi %bool %351 %350 %false %300 - %355 = OpPhi %bool %false %350 %true %300 - OpSelectionMerge %415 None - OpBranchConditional %355 %358 %415 - %358 = OpLabel - %359 = OpSGreaterThanEqual %bool %292 %uint_1 - OpSelectionMerge %382 None - OpBranchConditional %359 %362 %382 - %362 = OpLabel - %363 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %364 = OpLoad %uint %363 - %365 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %366 = OpLoad %uint %365 - %367 = OpIAdd %uint %366 %364 - %368 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %367 - %369 = OpLoad %uint %368 - %370 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %369 - OpStore %370 %297 - %371 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %372 = OpLoad %uint %371 - %373 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %374 = OpLoad %uint %373 - %375 = OpIAdd %uint %374 %372 - %376 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %375 - %377 = OpLoad %uint %376 - %378 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %377 - %379 = OpLoad %uint %378 - %380 = OpULessThanEqual %bool %379 %uint_100 - OpBranch %382 - %382 = OpLabel - %383 = OpPhi %bool %380 %362 %354 %358 - %384 = OpPhi %bool %false %362 %true %358 - OpSelectionMerge %412 None - OpBranchConditional %384 %387 %412 - %387 = OpLabel - %388 = OpIEqual %bool %292 %uint_0 - OpSelectionMerge %410 None - OpBranchConditional %388 %391 %410 - %391 = OpLabel - %392 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %393 = OpLoad %uint %392 - %394 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %395 = OpLoad %uint %394 - %396 = OpIAdd %uint %395 %393 - %397 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %396 - %398 = OpLoad %uint %397 - %399 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %398 - OpStore %399 %297 - %400 = OpIAdd %uint %297 %uint_1 - %401 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %402 = OpLoad %uint %401 - %403 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %404 = OpLoad %uint %403 - %405 = OpIAdd %uint %404 %402 - %406 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %405 - %407 = OpLoad %uint %406 - %408 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %407 - OpStore %408 %400 - OpBranch %410 - %410 = OpLabel - OpBranch %412 - %412 = OpLabel - %413 = OpPhi %bool %true %410 %383 %382 - OpBranch %415 - %415 = OpLabel - %416 = OpPhi %bool %413 %412 %354 %353 - OpBranchConditional %416 %418 %422 - %418 = OpLabel - %419 = OpIAdd %uint %297 %uint_1 - %420 = OpUGreaterThanEqual %bool %419 %289 - OpBranch %422 - %422 = OpLabel - %423 = OpPhi %uint %419 %418 %497 %415 - %424 = OpPhi %bool %420 %418 %true %415 - OpBranchConditional %424 %426 %296 - %426 = OpLabel - OpBranch %428 - %428 = OpLabel - OpBranch %430 - %430 = OpLabel - %431 = OpLoad %uint %32 - %432 = OpINotEqual %bool %431 %uint_0 - OpSelectionMerge %461 None - OpBranchConditional %432 %435 %461 - %435 = OpLabel - %436 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %437 = OpCompositeExtract %uint %436 0 - %438 = OpLoad %uint %43 - %439 = OpIMul %uint %437 %438 - %441 = OpAtomicIAdd %uint %31 %uint_1 %uint_64 %uint_1 - %442 = OpULessThan %bool %441 %439 - OpSelectionMerge %459 None - OpBranchConditional %442 %445 %459 - %445 = OpLabel - %446 = OpPhi %uint %448 %445 %uint_0 %435 - %447 = OpAtomicLoad %uint %31 %uint_1 %uint_64 - %448 = OpIAdd %uint %446 %uint_1 - %450 = OpULessThan %bool %446 %uint_1023 - %451 = OpULessThan %bool %447 %439 - %453 = OpSelect %bool %450 %451 %false - %454 = OpLogicalNot %bool %453 - OpLoopMerge %457 %445 None - OpBranchConditional %454 %457 %445 - %457 = OpLabel - OpBranch %459 - %459 = OpLabel - OpBranch %461 - %461 = OpLabel - %462 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %268 - OpAtomicStore %462 %uint_1 %uint_64 %uint_1 - %463 = OpShiftLeftLogical %uint %234 %uint_2 - OpSelectionMerge %478 None - OpBranchConditional %235 %466 %478 - %466 = OpLabel - %467 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %279 - %469 = OpAtomicLoad %uint %467 %uint_1 %uint_66 - %470 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %270 - %471 = OpAtomicLoad %uint %470 %uint_1 %uint_64 - %472 = OpBitwiseOr %uint %463 %uint_3 - %473 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %472 - OpAtomicStore %473 %uint_1 %uint_68 %471 - %475 = OpBitwiseOr %uint %463 %uint_2 - %476 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %475 - OpAtomicStore %476 %uint_1 %uint_68 %469 - OpBranch %478 - %478 = OpLabel - %479 = OpPhi %bool %false %466 %true %461 - OpSelectionMerge %491 None - OpBranchConditional %479 %482 %491 - %482 = OpLabel - %483 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %270 - %484 = OpAtomicLoad %uint %483 %uint_1 %uint_66 - %485 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %279 - %486 = OpAtomicLoad %uint %485 %uint_1 %uint_64 - %487 = OpBitwiseOr %uint %463 %uint_1 - %488 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %487 - OpAtomicStore %488 %uint_1 %uint_68 %486 - %489 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %463 - OpAtomicStore %489 %uint_1 %uint_68 %484 - OpBranch %491 - %491 = OpLabel - OpBranch %493 - %493 = OpLabel - OpBranch %495 - %495 = OpLabel - OpReturn - OpFunctionEnd - %523 = OpExtInst %void %498 PushConstantRegionGroupOffset %uint_0 %uint_12 - %500 = OpExtInst %void %498 Kernel %27 %499 %uint_7 - %502 = OpExtInst %void %498 ArgumentInfo %501 - %503 = OpExtInst %void %498 ArgumentStorageBuffer %500 %uint_0 %uint_0 %uint_0 %502 - %505 = OpExtInst %void %498 ArgumentInfo %504 - %506 = OpExtInst %void %498 ArgumentStorageBuffer %500 %uint_1 %uint_0 %uint_1 %505 - %508 = OpExtInst %void %498 ArgumentInfo %507 - %509 = OpExtInst %void %498 ArgumentStorageBuffer %500 %uint_2 %uint_0 %uint_2 %508 - %511 = OpExtInst %void %498 ArgumentInfo %510 - %512 = OpExtInst %void %498 ArgumentStorageBuffer %500 %uint_3 %uint_0 %uint_3 %511 - %514 = OpExtInst %void %498 ArgumentInfo %513 - %515 = OpExtInst %void %498 ArgumentStorageBuffer %500 %uint_4 %uint_0 %uint_4 %514 - %517 = OpExtInst %void %498 ArgumentInfo %516 - %518 = OpExtInst %void %498 ArgumentStorageBuffer %500 %uint_5 %uint_0 %uint_5 %517 - %520 = OpExtInst %void %498 ArgumentInfo %519 - %521 = OpExtInst %void %498 ArgumentStorageBuffer %500 %uint_6 %uint_0 %uint_6 %520 - %524 = OpExtInst %void %498 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/iriw-results.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/iriw-results.spv.dis deleted file mode 100644 index a357d03740..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/iriw-results.spv.dis +++ /dev/null @@ -1,319 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 275 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %257 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %27 "litmus_test" %gl_GlobalInvocationID - OpSource OpenCL_C 200 - %258 = OpString "litmus_test" - %260 = OpString "test_locations" - %263 = OpString "read_results" - %266 = OpString "test_results" - %269 = OpString "stress_params" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_15 0 Offset 0 - OpDecorate %_struct_15 Block - OpMemberDecorate %_struct_19 0 Offset 0 - OpMemberDecorate %_struct_19 1 Offset 4 - OpMemberDecorate %_struct_19 2 Offset 8 - OpMemberDecorate %_struct_19 3 Offset 12 - OpMemberDecorate %_struct_19 4 Offset 16 - OpMemberDecorate %_struct_19 5 Offset 20 - OpMemberDecorate %_struct_19 6 Offset 24 - OpMemberDecorate %_struct_19 7 Offset 28 - OpMemberDecorate %_struct_19 8 Offset 32 - OpMemberDecorate %_struct_19 9 Offset 36 - OpMemberDecorate %_struct_19 10 Offset 40 - OpDecorate %_runtimearr__struct_19 ArrayStride 44 - OpMemberDecorate %_struct_21 0 Offset 0 - OpDecorate %_struct_21 Block - OpDecorate %17 DescriptorSet 0 - OpDecorate %17 Binding 0 - OpDecorate %18 DescriptorSet 0 - OpDecorate %18 Binding 1 - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 2 - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 3 - OpDecorate %8 SpecId 0 - OpDecorate %9 SpecId 1 - OpDecorate %10 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint - %8 = OpSpecConstant %uint 1 - %9 = OpSpecConstant %uint 1 - %10 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %8 %9 %10 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_15 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_15 = OpTypePointer StorageBuffer %_struct_15 - %_struct_19 = OpTypeStruct %uint %uint %uint %uint %uint %uint %uint %uint %uint %uint %uint -%_runtimearr__struct_19 = OpTypeRuntimeArray %_struct_19 - %_struct_21 = OpTypeStruct %_runtimearr__struct_19 -%_ptr_StorageBuffer__struct_21 = OpTypePointer StorageBuffer %_struct_21 - %void = OpTypeVoid - %26 = OpTypeFunction %void -%_ptr_Input_uint = OpTypePointer Input %uint - %uint_0 = OpConstant %uint 0 -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_9 = OpConstant %uint 9 - %uint_1 = OpConstant %uint 1 - %bool = OpTypeBool - %uint_10 = OpConstant %uint 10 - %uint_66 = OpConstant %uint 66 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 - %false = OpConstantFalse %bool - %true = OpConstantTrue %bool - %uint_4 = OpConstant %uint 4 - %uint_72 = OpConstant %uint 72 - %uint_8 = OpConstant %uint 8 - %uint_7 = OpConstant %uint 7 - %uint_6 = OpConstant %uint 6 - %uint_5 = OpConstant %uint 5 - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input - %13 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize - %17 = OpVariable %_ptr_StorageBuffer__struct_15 StorageBuffer - %18 = OpVariable %_ptr_StorageBuffer__struct_15 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_21 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_15 StorageBuffer - %27 = OpFunction %void None %26 - %28 = OpLabel - %31 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %32 = OpLoad %uint %31 - %34 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %35 = OpLoad %uint %34 - %36 = OpIAdd %uint %35 %32 - %37 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %38 = OpCompositeExtract %uint %37 0 - %41 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_9 - %42 = OpLoad %uint %41 - %43 = OpIMul %uint %38 %42 - %45 = OpShiftRightLogical %uint %43 %uint_1 - %47 = OpULessThan %bool %36 %45 - OpSelectionMerge %256 None - OpBranchConditional %47 %50 %256 - %50 = OpLabel - %52 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %53 = OpLoad %uint %52 - %54 = OpShiftLeftLogical %uint %36 %uint_1 - %55 = OpIMul %uint %54 %53 - %56 = OpAccessChain %_ptr_StorageBuffer_uint %17 %uint_0 %55 - %58 = OpAtomicLoad %uint %56 %uint_1 %uint_66 - %60 = OpShiftLeftLogical %uint %36 %uint_2 - %61 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %60 - %62 = OpAtomicLoad %uint %61 %uint_1 %uint_66 - %63 = OpBitwiseOr %uint %60 %uint_1 - %64 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %63 - %65 = OpAtomicLoad %uint %64 %uint_1 %uint_66 - %66 = OpBitwiseOr %uint %60 %uint_2 - %67 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %66 - %68 = OpAtomicLoad %uint %67 %uint_1 %uint_66 - %70 = OpBitwiseOr %uint %60 %uint_3 - %71 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %70 - %72 = OpAtomicLoad %uint %71 %uint_1 %uint_66 - %73 = OpIEqual %bool %62 %uint_0 - %74 = OpIEqual %bool %65 %uint_0 - %76 = OpSelect %bool %73 %74 %false - %77 = OpIEqual %bool %68 %uint_0 - %78 = OpSelect %bool %76 %77 %false - %79 = OpIEqual %bool %72 %uint_0 - %80 = OpSelect %bool %78 %79 %false - %81 = OpLogicalNot %bool %80 - OpSelectionMerge %246 None - OpBranchConditional %81 %84 %246 - %84 = OpLabel - %85 = OpIEqual %bool %62 %uint_1 - %86 = OpIEqual %bool %65 %uint_1 - %87 = OpSelect %bool %85 %86 %false - %88 = OpIEqual %bool %68 %uint_1 - %89 = OpSelect %bool %87 %88 %false - %90 = OpIEqual %bool %72 %uint_1 - %91 = OpSelect %bool %89 %90 %false - %92 = OpLogicalNot %bool %91 - OpSelectionMerge %236 None - OpBranchConditional %92 %95 %236 - %95 = OpLabel - %96 = OpSelect %bool %76 %88 %false - %97 = OpSelect %bool %96 %90 %false - %98 = OpLogicalNot %bool %97 - OpSelectionMerge %226 None - OpBranchConditional %98 %101 %226 - %101 = OpLabel - %102 = OpSelect %bool %87 %77 %false - %103 = OpSelect %bool %102 %79 %false - %104 = OpLogicalNot %bool %103 - OpSelectionMerge %216 None - OpBranchConditional %104 %107 %216 - %107 = OpLabel - %108 = OpINotEqual %bool %62 %65 - %109 = OpIEqual %bool %68 %72 - %111 = OpSelect %bool %108 %true %109 - %112 = OpLogicalNot %bool %111 - OpSelectionMerge %121 None - OpBranchConditional %112 %115 %121 - %115 = OpLabel - %117 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_4 - %119 = OpAtomicIAdd %uint %117 %uint_1 %uint_72 %uint_1 - OpBranch %121 - %121 = OpLabel - %122 = OpPhi %bool %false %115 %true %107 - OpSelectionMerge %214 None - OpBranchConditional %122 %125 %214 - %125 = OpLabel - %126 = OpSelect %bool %108 %109 %false - %127 = OpLogicalNot %bool %126 - OpSelectionMerge %203 None - OpBranchConditional %127 %130 %203 - %130 = OpLabel - %131 = OpSelect %bool %73 %86 %false - %132 = OpSelect %bool %131 %77 %false - %133 = OpSelect %bool %132 %90 %false - %134 = OpLogicalNot %bool %133 - OpSelectionMerge %192 None - OpBranchConditional %134 %137 %192 - %137 = OpLabel - %138 = OpSelect %bool %131 %88 %false - %139 = OpSelect %bool %138 %79 %false - %140 = OpLogicalNot %bool %139 - OpSelectionMerge %181 None - OpBranchConditional %140 %143 %181 - %143 = OpLabel - %144 = OpSelect %bool %85 %74 %false - %145 = OpSelect %bool %144 %77 %false - %146 = OpSelect %bool %145 %90 %false - %147 = OpLogicalNot %bool %146 - OpSelectionMerge %170 None - OpBranchConditional %147 %150 %170 - %150 = OpLabel - %151 = OpSelect %bool %144 %88 %false - %152 = OpSelect %bool %151 %79 %false - %153 = OpLogicalNot %bool %152 - OpSelectionMerge %160 None - OpBranchConditional %153 %156 %160 - %156 = OpLabel - %157 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_10 - %158 = OpAtomicIAdd %uint %157 %uint_1 %uint_72 %uint_1 - OpBranch %160 - %160 = OpLabel - %161 = OpPhi %bool %false %156 %true %150 - OpSelectionMerge %168 None - OpBranchConditional %161 %164 %168 - %164 = OpLabel - %165 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_9 - %166 = OpAtomicIAdd %uint %165 %uint_1 %uint_72 %uint_1 - OpBranch %168 - %168 = OpLabel - OpBranch %170 - %170 = OpLabel - %171 = OpPhi %bool %false %168 %true %143 - OpSelectionMerge %179 None - OpBranchConditional %171 %174 %179 - %174 = OpLabel - %176 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_8 - %177 = OpAtomicIAdd %uint %176 %uint_1 %uint_72 %uint_1 - OpBranch %179 - %179 = OpLabel - OpBranch %181 - %181 = OpLabel - %182 = OpPhi %bool %false %179 %true %137 - OpSelectionMerge %190 None - OpBranchConditional %182 %185 %190 - %185 = OpLabel - %187 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_7 - %188 = OpAtomicIAdd %uint %187 %uint_1 %uint_72 %uint_1 - OpBranch %190 - %190 = OpLabel - OpBranch %192 - %192 = OpLabel - %193 = OpPhi %bool %false %190 %true %130 - OpSelectionMerge %201 None - OpBranchConditional %193 %196 %201 - %196 = OpLabel - %198 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_6 - %199 = OpAtomicIAdd %uint %198 %uint_1 %uint_72 %uint_1 - OpBranch %201 - %201 = OpLabel - OpBranch %203 - %203 = OpLabel - %204 = OpPhi %bool %false %201 %true %125 - OpSelectionMerge %212 None - OpBranchConditional %204 %207 %212 - %207 = OpLabel - %209 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_5 - %210 = OpAtomicIAdd %uint %209 %uint_1 %uint_72 %uint_1 - OpBranch %212 - %212 = OpLabel - OpBranch %214 - %214 = OpLabel - OpBranch %216 - %216 = OpLabel - %217 = OpPhi %bool %false %214 %true %101 - OpSelectionMerge %224 None - OpBranchConditional %217 %220 %224 - %220 = OpLabel - %221 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_3 - %222 = OpAtomicIAdd %uint %221 %uint_1 %uint_72 %uint_1 - OpBranch %224 - %224 = OpLabel - OpBranch %226 - %226 = OpLabel - %227 = OpPhi %bool %false %224 %true %95 - OpSelectionMerge %234 None - OpBranchConditional %227 %230 %234 - %230 = OpLabel - %231 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_2 - %232 = OpAtomicIAdd %uint %231 %uint_1 %uint_72 %uint_1 - OpBranch %234 - %234 = OpLabel - OpBranch %236 - %236 = OpLabel - %237 = OpPhi %bool %false %234 %true %84 - OpSelectionMerge %244 None - OpBranchConditional %237 %240 %244 - %240 = OpLabel - %241 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_1 - %242 = OpAtomicIAdd %uint %241 %uint_1 %uint_72 %uint_1 - OpBranch %244 - %244 = OpLabel - OpBranch %246 - %246 = OpLabel - %247 = OpPhi %bool %false %244 %true %50 - OpSelectionMerge %254 None - OpBranchConditional %247 %250 %254 - %250 = OpLabel - %251 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_0 - %252 = OpAtomicIAdd %uint %251 %uint_1 %uint_72 %uint_1 - OpBranch %254 - %254 = OpLabel - OpBranch %256 - %256 = OpLabel - OpReturn - OpFunctionEnd - %273 = OpExtInst %void %257 PushConstantRegionOffset %uint_0 %uint_12 - %259 = OpExtInst %void %257 Kernel %27 %258 %uint_4 - %261 = OpExtInst %void %257 ArgumentInfo %260 - %262 = OpExtInst %void %257 ArgumentStorageBuffer %259 %uint_0 %uint_0 %uint_0 %261 - %264 = OpExtInst %void %257 ArgumentInfo %263 - %265 = OpExtInst %void %257 ArgumentStorageBuffer %259 %uint_1 %uint_0 %uint_1 %264 - %267 = OpExtInst %void %257 ArgumentInfo %266 - %268 = OpExtInst %void %257 ArgumentStorageBuffer %259 %uint_2 %uint_0 %uint_2 %267 - %270 = OpExtInst %void %257 ArgumentInfo %269 - %271 = OpExtInst %void %257 ArgumentStorageBuffer %259 %uint_3 %uint_0 %uint_3 %270 - %274 = OpExtInst %void %257 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/iriw-sequentialized.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/iriw-sequentialized.spv.dis deleted file mode 100644 index 0abbc1e9b4..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/iriw-sequentialized.spv.dis +++ /dev/null @@ -1,557 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 507 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %479 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %27 "litmus_test" %gl_LocalInvocationID %gl_WorkGroupID - OpSource OpenCL_C 200 - %480 = OpString "litmus_test" - %483 = OpString "test_locations" - %486 = OpString "read_results" - %489 = OpString "shuffled_workgroups" - %492 = OpString "barrier" - %495 = OpString "scratchpad" - %498 = OpString "scratch_locations" - %501 = OpString "stress_params" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_16 0 Offset 0 - OpDecorate %_struct_16 Block - OpDecorate %18 DescriptorSet 0 - OpDecorate %18 Binding 0 - OpDecorate %19 DescriptorSet 0 - OpDecorate %19 Binding 1 - OpDecorate %20 DescriptorSet 0 - OpDecorate %20 Binding 2 - OpDecorate %21 DescriptorSet 0 - OpDecorate %21 Binding 3 - OpDecorate %22 DescriptorSet 0 - OpDecorate %22 Binding 4 - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 5 - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 6 - OpDecorate %6 SpecId 0 - OpDecorate %7 SpecId 1 - OpDecorate %8 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 - %6 = OpSpecConstant %uint 1 - %7 = OpSpecConstant %uint 1 - %8 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %6 %7 %8 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_16 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_16 = OpTypePointer StorageBuffer %_struct_16 - %void = OpTypeVoid - %26 = OpTypeFunction %void -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint - %uint_9 = OpConstant %uint 9 - %bool = OpTypeBool - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 - %uint_100 = OpConstant %uint 100 - %uint_8 = OpConstant %uint 8 - %uint_10 = OpConstant %uint 10 - %uint_11 = OpConstant %uint 11 - %uint_4 = OpConstant %uint 4 - %uint_5 = OpConstant %uint 5 - %uint_6 = OpConstant %uint 6 - %uint_64 = OpConstant %uint 64 - %uint_1023 = OpConstant %uint 1023 - %false = OpConstantFalse %bool - %uint_68 = OpConstant %uint 68 - %true = OpConstantTrue %bool - %478 = OpUndef %uint - %uint_7 = OpConstant %uint 7 - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant - %11 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input -%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input - %18 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %19 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %20 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %21 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %22 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %27 = OpFunction %void None %26 - %28 = OpLabel - %31 = OpAccessChain %_ptr_StorageBuffer_uint %21 %uint_0 %uint_0 - %32 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_0 - %34 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %35 = OpLoad %uint %34 - %37 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %38 = OpLoad %uint %37 - %39 = OpIAdd %uint %38 %35 - %40 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_0 %39 - %41 = OpLoad %uint %40 - %43 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_9 - %44 = OpLoad %uint %43 - %46 = OpUGreaterThanEqual %bool %41 %44 - OpSelectionMerge %203 None - OpBranchConditional %46 %49 %203 - %49 = OpLabel - %51 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_1 - %52 = OpLoad %uint %51 - %53 = OpINotEqual %bool %52 %uint_0 - OpSelectionMerge %201 None - OpBranchConditional %53 %56 %201 - %56 = OpLabel - %58 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_2 - %59 = OpLoad %uint %58 - %61 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_3 - %62 = OpLoad %uint %61 - %63 = OpINotEqual %bool %59 %uint_0 - OpSelectionMerge %199 None - OpBranchConditional %63 %66 %199 - %66 = OpLabel - %67 = OpPhi %uint %194 %193 %uint_0 %56 - OpLoopMerge %197 %193 None - OpBranch %70 - %70 = OpLabel - %71 = OpSGreaterThanEqual %bool %62 %uint_2 - OpSelectionMerge %124 None - OpBranchConditional %71 %74 %124 - %74 = OpLabel - %75 = OpSGreaterThanEqual %bool %62 %uint_3 - OpSelectionMerge %98 None - OpBranchConditional %75 %78 %98 - %78 = OpLabel - %79 = OpIEqual %bool %62 %uint_3 - OpSelectionMerge %95 None - OpBranchConditional %79 %82 %95 - %82 = OpLabel - %83 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %84 = OpLoad %uint %83 - %85 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %86 = OpLoad %uint %85 - %87 = OpIAdd %uint %86 %84 - %88 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %87 - %89 = OpLoad %uint %88 - %90 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %89 - %91 = OpLoad %uint %90 - %93 = OpULessThanEqual %bool %91 %uint_100 - OpBranch %95 - %95 = OpLabel - %96 = OpPhi %bool %93 %82 %true %78 - OpBranch %98 - %98 = OpLabel - %99 = OpPhi %bool %96 %95 %false %74 - %100 = OpPhi %bool %false %95 %true %74 - OpSelectionMerge %121 None - OpBranchConditional %100 %103 %121 - %103 = OpLabel - %104 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %105 = OpLoad %uint %104 - %106 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %107 = OpLoad %uint %106 - %108 = OpIAdd %uint %107 %105 - %109 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %108 - %110 = OpLoad %uint %109 - %111 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %110 - %112 = OpLoad %uint %111 - %113 = OpULessThanEqual %bool %112 %uint_100 - OpSelectionMerge %118 None - OpBranchConditional %113 %116 %118 - %116 = OpLabel - OpStore %111 %67 - OpBranch %118 - %118 = OpLabel - %119 = OpPhi %bool %true %116 %99 %103 - OpBranch %121 - %121 = OpLabel - %122 = OpPhi %bool %119 %118 %99 %98 - OpBranch %124 - %124 = OpLabel - %125 = OpPhi %bool %122 %121 %false %70 - %126 = OpPhi %bool %false %121 %true %70 - OpSelectionMerge %186 None - OpBranchConditional %126 %129 %186 - %129 = OpLabel - %130 = OpSGreaterThanEqual %bool %62 %uint_1 - OpSelectionMerge %153 None - OpBranchConditional %130 %133 %153 - %133 = OpLabel - %134 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %135 = OpLoad %uint %134 - %136 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %137 = OpLoad %uint %136 - %138 = OpIAdd %uint %137 %135 - %139 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %138 - %140 = OpLoad %uint %139 - %141 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %140 - OpStore %141 %67 - %142 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %143 = OpLoad %uint %142 - %144 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %145 = OpLoad %uint %144 - %146 = OpIAdd %uint %145 %143 - %147 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %146 - %148 = OpLoad %uint %147 - %149 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %148 - %150 = OpLoad %uint %149 - %151 = OpULessThanEqual %bool %150 %uint_100 - OpBranch %153 - %153 = OpLabel - %154 = OpPhi %bool %151 %133 %125 %129 - %155 = OpPhi %bool %false %133 %true %129 - OpSelectionMerge %183 None - OpBranchConditional %155 %158 %183 - %158 = OpLabel - %159 = OpIEqual %bool %62 %uint_0 - OpSelectionMerge %181 None - OpBranchConditional %159 %162 %181 - %162 = OpLabel - %163 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %164 = OpLoad %uint %163 - %165 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %166 = OpLoad %uint %165 - %167 = OpIAdd %uint %166 %164 - %168 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %167 - %169 = OpLoad %uint %168 - %170 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %169 - OpStore %170 %67 - %171 = OpIAdd %uint %67 %uint_1 - %172 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %173 = OpLoad %uint %172 - %174 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %175 = OpLoad %uint %174 - %176 = OpIAdd %uint %175 %173 - %177 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %176 - %178 = OpLoad %uint %177 - %179 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %178 - OpStore %179 %171 - OpBranch %181 - %181 = OpLabel - OpBranch %183 - %183 = OpLabel - %184 = OpPhi %bool %true %181 %154 %153 - OpBranch %186 - %186 = OpLabel - %187 = OpPhi %bool %184 %183 %125 %124 - OpBranchConditional %187 %189 %193 - %189 = OpLabel - %190 = OpIAdd %uint %67 %uint_1 - %191 = OpUGreaterThanEqual %bool %190 %59 - OpBranch %193 - %193 = OpLabel - %194 = OpPhi %uint %190 %189 %478 %186 - %195 = OpPhi %bool %191 %189 %true %186 - OpBranchConditional %195 %197 %66 - %197 = OpLabel - OpBranch %199 - %199 = OpLabel - OpBranch %201 - %201 = OpLabel - OpBranch %203 - %203 = OpLabel - %204 = OpPhi %bool %false %201 %true %28 - OpSelectionMerge %474 None - OpBranchConditional %204 %207 %474 - %207 = OpLabel - %208 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %209 = OpCompositeExtract %uint %208 0 - %210 = OpIMul %uint %209 %44 - %211 = OpShiftRightLogical %uint %210 %uint_1 - %212 = OpIMul %uint %209 %41 - %213 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %214 = OpLoad %uint %213 - %215 = OpIAdd %uint %212 %214 - %216 = OpUMod %uint %215 %211 - %217 = OpULessThanEqual %bool %211 %215 - OpSelectionMerge %236 None - OpBranchConditional %217 %220 %236 - %220 = OpLabel - %222 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_8 - %223 = OpLoad %uint %222 - %224 = OpIMul %uint %223 %216 - %225 = OpUMod %uint %224 %211 - %227 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %228 = OpLoad %uint %227 - %229 = OpShiftLeftLogical %uint %225 %uint_1 - %230 = OpIMul %uint %229 %228 - %232 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_11 - %233 = OpLoad %uint %232 - %234 = OpIAdd %uint %230 %233 - OpBranch %236 - %236 = OpLabel - %237 = OpPhi %uint %234 %220 %478 %207 - %238 = OpPhi %uint %228 %220 %478 %207 - %239 = OpPhi %bool %false %220 %true %207 - OpSelectionMerge %248 None - OpBranchConditional %239 %242 %248 - %242 = OpLabel - %243 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %244 = OpLoad %uint %243 - %245 = OpShiftLeftLogical %uint %216 %uint_1 - %246 = OpIMul %uint %245 %244 - OpBranch %248 - %248 = OpLabel - %249 = OpPhi %uint %244 %242 %238 %236 - %250 = OpPhi %uint %246 %242 %237 %236 - %251 = OpShiftLeftLogical %uint %216 %uint_1 - %252 = OpIMul %uint %251 %249 - %253 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_8 - %254 = OpLoad %uint %253 - %255 = OpIMul %uint %254 %216 - %256 = OpUMod %uint %255 %211 - %257 = OpShiftLeftLogical %uint %249 %uint_1 - %258 = OpIMul %uint %257 %256 - %259 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_11 - %260 = OpLoad %uint %259 - %261 = OpIAdd %uint %258 %260 - %263 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_4 - %264 = OpLoad %uint %263 - %265 = OpINotEqual %bool %264 %uint_0 - OpSelectionMerge %412 None - OpBranchConditional %265 %268 %412 - %268 = OpLabel - %270 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_5 - %271 = OpLoad %uint %270 - %273 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_6 - %274 = OpLoad %uint %273 - %275 = OpINotEqual %bool %271 %uint_0 - OpSelectionMerge %410 None - OpBranchConditional %275 %278 %410 - %278 = OpLabel - %279 = OpPhi %uint %405 %404 %uint_0 %268 - OpLoopMerge %408 %404 None - OpBranch %282 - %282 = OpLabel - %283 = OpSGreaterThanEqual %bool %274 %uint_2 - OpSelectionMerge %335 None - OpBranchConditional %283 %286 %335 - %286 = OpLabel - %287 = OpSGreaterThanEqual %bool %274 %uint_3 - OpSelectionMerge %309 None - OpBranchConditional %287 %290 %309 - %290 = OpLabel - %291 = OpIEqual %bool %274 %uint_3 - OpSelectionMerge %306 None - OpBranchConditional %291 %294 %306 - %294 = OpLabel - %295 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %296 = OpLoad %uint %295 - %297 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %298 = OpLoad %uint %297 - %299 = OpIAdd %uint %298 %296 - %300 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %299 - %301 = OpLoad %uint %300 - %302 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %301 - %303 = OpLoad %uint %302 - %304 = OpULessThanEqual %bool %303 %uint_100 - OpBranch %306 - %306 = OpLabel - %307 = OpPhi %bool %304 %294 %true %290 - OpBranch %309 - %309 = OpLabel - %310 = OpPhi %bool %307 %306 %false %286 - %311 = OpPhi %bool %false %306 %true %286 - OpSelectionMerge %332 None - OpBranchConditional %311 %314 %332 - %314 = OpLabel - %315 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %316 = OpLoad %uint %315 - %317 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %318 = OpLoad %uint %317 - %319 = OpIAdd %uint %318 %316 - %320 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %319 - %321 = OpLoad %uint %320 - %322 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %321 - %323 = OpLoad %uint %322 - %324 = OpULessThanEqual %bool %323 %uint_100 - OpSelectionMerge %329 None - OpBranchConditional %324 %327 %329 - %327 = OpLabel - OpStore %322 %279 - OpBranch %329 - %329 = OpLabel - %330 = OpPhi %bool %true %327 %310 %314 - OpBranch %332 - %332 = OpLabel - %333 = OpPhi %bool %330 %329 %310 %309 - OpBranch %335 - %335 = OpLabel - %336 = OpPhi %bool %333 %332 %false %282 - %337 = OpPhi %bool %false %332 %true %282 - OpSelectionMerge %397 None - OpBranchConditional %337 %340 %397 - %340 = OpLabel - %341 = OpSGreaterThanEqual %bool %274 %uint_1 - OpSelectionMerge %364 None - OpBranchConditional %341 %344 %364 - %344 = OpLabel - %345 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %346 = OpLoad %uint %345 - %347 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %348 = OpLoad %uint %347 - %349 = OpIAdd %uint %348 %346 - %350 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %349 - %351 = OpLoad %uint %350 - %352 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %351 - OpStore %352 %279 - %353 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %354 = OpLoad %uint %353 - %355 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %356 = OpLoad %uint %355 - %357 = OpIAdd %uint %356 %354 - %358 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %357 - %359 = OpLoad %uint %358 - %360 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %359 - %361 = OpLoad %uint %360 - %362 = OpULessThanEqual %bool %361 %uint_100 - OpBranch %364 - %364 = OpLabel - %365 = OpPhi %bool %362 %344 %336 %340 - %366 = OpPhi %bool %false %344 %true %340 - OpSelectionMerge %394 None - OpBranchConditional %366 %369 %394 - %369 = OpLabel - %370 = OpIEqual %bool %274 %uint_0 - OpSelectionMerge %392 None - OpBranchConditional %370 %373 %392 - %373 = OpLabel - %374 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %375 = OpLoad %uint %374 - %376 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %377 = OpLoad %uint %376 - %378 = OpIAdd %uint %377 %375 - %379 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %378 - %380 = OpLoad %uint %379 - %381 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %380 - OpStore %381 %279 - %382 = OpIAdd %uint %279 %uint_1 - %383 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %384 = OpLoad %uint %383 - %385 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %386 = OpLoad %uint %385 - %387 = OpIAdd %uint %386 %384 - %388 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %387 - %389 = OpLoad %uint %388 - %390 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %389 - OpStore %390 %382 - OpBranch %392 - %392 = OpLabel - OpBranch %394 - %394 = OpLabel - %395 = OpPhi %bool %true %392 %365 %364 - OpBranch %397 - %397 = OpLabel - %398 = OpPhi %bool %395 %394 %336 %335 - OpBranchConditional %398 %400 %404 - %400 = OpLabel - %401 = OpIAdd %uint %279 %uint_1 - %402 = OpUGreaterThanEqual %bool %401 %271 - OpBranch %404 - %404 = OpLabel - %405 = OpPhi %uint %401 %400 %478 %397 - %406 = OpPhi %bool %402 %400 %true %397 - OpBranchConditional %406 %408 %278 - %408 = OpLabel - OpBranch %410 - %410 = OpLabel - OpBranch %412 - %412 = OpLabel - %413 = OpLoad %uint %32 - %414 = OpINotEqual %bool %413 %uint_0 - OpSelectionMerge %443 None - OpBranchConditional %414 %417 %443 - %417 = OpLabel - %418 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %419 = OpCompositeExtract %uint %418 0 - %420 = OpLoad %uint %43 - %421 = OpIMul %uint %419 %420 - %423 = OpAtomicIAdd %uint %31 %uint_1 %uint_64 %uint_1 - %424 = OpULessThan %bool %423 %421 - OpSelectionMerge %441 None - OpBranchConditional %424 %427 %441 - %427 = OpLabel - %428 = OpPhi %uint %430 %427 %uint_0 %417 - %429 = OpAtomicLoad %uint %31 %uint_1 %uint_64 - %430 = OpIAdd %uint %428 %uint_1 - %432 = OpULessThan %bool %428 %uint_1023 - %433 = OpULessThan %bool %429 %421 - %435 = OpSelect %bool %432 %433 %false - %436 = OpLogicalNot %bool %435 - OpLoopMerge %439 %427 None - OpBranchConditional %436 %439 %427 - %439 = OpLabel - OpBranch %441 - %441 = OpLabel - OpBranch %443 - %443 = OpLabel - %444 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %250 - OpAtomicStore %444 %uint_1 %uint_64 %uint_1 - %445 = OpShiftLeftLogical %uint %216 %uint_2 - OpSelectionMerge %459 None - OpBranchConditional %217 %448 %459 - %448 = OpLabel - %449 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %261 - %450 = OpAtomicLoad %uint %449 %uint_1 %uint_64 - %451 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %252 - %452 = OpAtomicLoad %uint %451 %uint_1 %uint_64 - %453 = OpBitwiseOr %uint %445 %uint_3 - %454 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %453 - OpAtomicStore %454 %uint_1 %uint_68 %452 - %456 = OpBitwiseOr %uint %445 %uint_2 - %457 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %456 - OpAtomicStore %457 %uint_1 %uint_68 %450 - OpBranch %459 - %459 = OpLabel - %460 = OpPhi %bool %false %448 %true %443 - OpSelectionMerge %472 None - OpBranchConditional %460 %463 %472 - %463 = OpLabel - %464 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %252 - %465 = OpAtomicLoad %uint %464 %uint_1 %uint_64 - %466 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %261 - %467 = OpAtomicLoad %uint %466 %uint_1 %uint_64 - %468 = OpBitwiseOr %uint %445 %uint_1 - %469 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %468 - OpAtomicStore %469 %uint_1 %uint_68 %467 - %470 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %445 - OpAtomicStore %470 %uint_1 %uint_68 %465 - OpBranch %472 - %472 = OpLabel - OpBranch %474 - %474 = OpLabel - OpBranch %476 - %476 = OpLabel - OpReturn - OpFunctionEnd - %505 = OpExtInst %void %479 PushConstantRegionGroupOffset %uint_0 %uint_12 - %482 = OpExtInst %void %479 Kernel %27 %480 %uint_7 - %484 = OpExtInst %void %479 ArgumentInfo %483 - %485 = OpExtInst %void %479 ArgumentStorageBuffer %482 %uint_0 %uint_0 %uint_0 %484 - %487 = OpExtInst %void %479 ArgumentInfo %486 - %488 = OpExtInst %void %479 ArgumentStorageBuffer %482 %uint_1 %uint_0 %uint_1 %487 - %490 = OpExtInst %void %479 ArgumentInfo %489 - %491 = OpExtInst %void %479 ArgumentStorageBuffer %482 %uint_2 %uint_0 %uint_2 %490 - %493 = OpExtInst %void %479 ArgumentInfo %492 - %494 = OpExtInst %void %479 ArgumentStorageBuffer %482 %uint_3 %uint_0 %uint_3 %493 - %496 = OpExtInst %void %479 ArgumentInfo %495 - %497 = OpExtInst %void %479 ArgumentStorageBuffer %482 %uint_4 %uint_0 %uint_4 %496 - %499 = OpExtInst %void %479 ArgumentInfo %498 - %500 = OpExtInst %void %479 ArgumentStorageBuffer %482 %uint_5 %uint_0 %uint_5 %499 - %502 = OpExtInst %void %479 ArgumentInfo %501 - %503 = OpExtInst %void %479 ArgumentStorageBuffer %482 %uint_6 %uint_0 %uint_6 %502 - %506 = OpExtInst %void %479 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/iriw.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/iriw.spv.dis deleted file mode 100644 index 6d22969f18..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/iriw.spv.dis +++ /dev/null @@ -1,577 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 527 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %500 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %27 "litmus_test" %gl_LocalInvocationID %gl_WorkGroupID - OpSource OpenCL_C 200 - %501 = OpString "litmus_test" - %503 = OpString "test_locations" - %506 = OpString "read_results" - %509 = OpString "shuffled_workgroups" - %512 = OpString "barrier" - %515 = OpString "scratchpad" - %518 = OpString "scratch_locations" - %521 = OpString "stress_params" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_16 0 Offset 0 - OpDecorate %_struct_16 Block - OpDecorate %18 DescriptorSet 0 - OpDecorate %18 Binding 0 - OpDecorate %19 DescriptorSet 0 - OpDecorate %19 Binding 1 - OpDecorate %20 DescriptorSet 0 - OpDecorate %20 Binding 2 - OpDecorate %21 DescriptorSet 0 - OpDecorate %21 Binding 3 - OpDecorate %22 DescriptorSet 0 - OpDecorate %22 Binding 4 - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 5 - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 6 - OpDecorate %6 SpecId 0 - OpDecorate %7 SpecId 1 - OpDecorate %8 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 - %6 = OpSpecConstant %uint 1 - %7 = OpSpecConstant %uint 1 - %8 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %6 %7 %8 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_16 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_16 = OpTypePointer StorageBuffer %_struct_16 - %void = OpTypeVoid - %26 = OpTypeFunction %void -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint - %uint_9 = OpConstant %uint 9 - %bool = OpTypeBool - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 - %uint_100 = OpConstant %uint 100 -%uint_4294967295 = OpConstant %uint 4294967295 - %uint_7 = OpConstant %uint 7 - %uint_8 = OpConstant %uint 8 - %uint_10 = OpConstant %uint 10 - %uint_11 = OpConstant %uint 11 - %uint_4 = OpConstant %uint 4 - %uint_5 = OpConstant %uint 5 - %uint_6 = OpConstant %uint 6 - %uint_64 = OpConstant %uint 64 - %uint_1023 = OpConstant %uint 1023 - %false = OpConstantFalse %bool - %uint_68 = OpConstant %uint 68 - %true = OpConstantTrue %bool - %499 = OpUndef %uint - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant - %11 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input -%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input - %18 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %19 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %20 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %21 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %22 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %27 = OpFunction %void None %26 - %28 = OpLabel - %31 = OpAccessChain %_ptr_StorageBuffer_uint %21 %uint_0 %uint_0 - %32 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_0 - %34 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %35 = OpLoad %uint %34 - %37 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %38 = OpLoad %uint %37 - %39 = OpIAdd %uint %38 %35 - %40 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_0 %39 - %41 = OpLoad %uint %40 - %43 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_9 - %44 = OpLoad %uint %43 - %46 = OpUGreaterThanEqual %bool %41 %44 - OpSelectionMerge %203 None - OpBranchConditional %46 %49 %203 - %49 = OpLabel - %51 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_1 - %52 = OpLoad %uint %51 - %53 = OpINotEqual %bool %52 %uint_0 - OpSelectionMerge %201 None - OpBranchConditional %53 %56 %201 - %56 = OpLabel - %58 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_2 - %59 = OpLoad %uint %58 - %61 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_3 - %62 = OpLoad %uint %61 - %63 = OpINotEqual %bool %59 %uint_0 - OpSelectionMerge %199 None - OpBranchConditional %63 %66 %199 - %66 = OpLabel - %67 = OpPhi %uint %194 %193 %uint_0 %56 - OpLoopMerge %197 %193 None - OpBranch %70 - %70 = OpLabel - %71 = OpSGreaterThanEqual %bool %62 %uint_2 - OpSelectionMerge %124 None - OpBranchConditional %71 %74 %124 - %74 = OpLabel - %75 = OpSGreaterThanEqual %bool %62 %uint_3 - OpSelectionMerge %98 None - OpBranchConditional %75 %78 %98 - %78 = OpLabel - %79 = OpIEqual %bool %62 %uint_3 - OpSelectionMerge %95 None - OpBranchConditional %79 %82 %95 - %82 = OpLabel - %83 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %84 = OpLoad %uint %83 - %85 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %86 = OpLoad %uint %85 - %87 = OpIAdd %uint %86 %84 - %88 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %87 - %89 = OpLoad %uint %88 - %90 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %89 - %91 = OpLoad %uint %90 - %93 = OpULessThanEqual %bool %91 %uint_100 - OpBranch %95 - %95 = OpLabel - %96 = OpPhi %bool %93 %82 %true %78 - OpBranch %98 - %98 = OpLabel - %99 = OpPhi %bool %96 %95 %false %74 - %100 = OpPhi %bool %false %95 %true %74 - OpSelectionMerge %121 None - OpBranchConditional %100 %103 %121 - %103 = OpLabel - %104 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %105 = OpLoad %uint %104 - %106 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %107 = OpLoad %uint %106 - %108 = OpIAdd %uint %107 %105 - %109 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %108 - %110 = OpLoad %uint %109 - %111 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %110 - %112 = OpLoad %uint %111 - %113 = OpULessThanEqual %bool %112 %uint_100 - OpSelectionMerge %118 None - OpBranchConditional %113 %116 %118 - %116 = OpLabel - OpStore %111 %67 - OpBranch %118 - %118 = OpLabel - %119 = OpPhi %bool %true %116 %99 %103 - OpBranch %121 - %121 = OpLabel - %122 = OpPhi %bool %119 %118 %99 %98 - OpBranch %124 - %124 = OpLabel - %125 = OpPhi %bool %122 %121 %false %70 - %126 = OpPhi %bool %false %121 %true %70 - OpSelectionMerge %186 None - OpBranchConditional %126 %129 %186 - %129 = OpLabel - %130 = OpSGreaterThanEqual %bool %62 %uint_1 - OpSelectionMerge %153 None - OpBranchConditional %130 %133 %153 - %133 = OpLabel - %134 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %135 = OpLoad %uint %134 - %136 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %137 = OpLoad %uint %136 - %138 = OpIAdd %uint %137 %135 - %139 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %138 - %140 = OpLoad %uint %139 - %141 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %140 - OpStore %141 %67 - %142 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %143 = OpLoad %uint %142 - %144 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %145 = OpLoad %uint %144 - %146 = OpIAdd %uint %145 %143 - %147 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %146 - %148 = OpLoad %uint %147 - %149 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %148 - %150 = OpLoad %uint %149 - %151 = OpULessThanEqual %bool %150 %uint_100 - OpBranch %153 - %153 = OpLabel - %154 = OpPhi %bool %151 %133 %125 %129 - %155 = OpPhi %bool %false %133 %true %129 - OpSelectionMerge %183 None - OpBranchConditional %155 %158 %183 - %158 = OpLabel - %159 = OpIEqual %bool %62 %uint_0 - OpSelectionMerge %181 None - OpBranchConditional %159 %162 %181 - %162 = OpLabel - %163 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %164 = OpLoad %uint %163 - %165 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %166 = OpLoad %uint %165 - %167 = OpIAdd %uint %166 %164 - %168 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %167 - %169 = OpLoad %uint %168 - %170 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %169 - OpStore %170 %67 - %171 = OpIAdd %uint %67 %uint_1 - %172 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %173 = OpLoad %uint %172 - %174 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %175 = OpLoad %uint %174 - %176 = OpIAdd %uint %175 %173 - %177 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %176 - %178 = OpLoad %uint %177 - %179 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %178 - OpStore %179 %171 - OpBranch %181 - %181 = OpLabel - OpBranch %183 - %183 = OpLabel - %184 = OpPhi %bool %true %181 %154 %153 - OpBranch %186 - %186 = OpLabel - %187 = OpPhi %bool %184 %183 %125 %124 - OpBranchConditional %187 %189 %193 - %189 = OpLabel - %190 = OpIAdd %uint %67 %uint_1 - %191 = OpUGreaterThanEqual %bool %190 %59 - OpBranch %193 - %193 = OpLabel - %194 = OpPhi %uint %190 %189 %499 %186 - %195 = OpPhi %bool %191 %189 %true %186 - OpBranchConditional %195 %197 %66 - %197 = OpLabel - OpBranch %199 - %199 = OpLabel - OpBranch %201 - %201 = OpLabel - OpBranch %203 - %203 = OpLabel - %204 = OpPhi %bool %false %201 %true %28 - OpSelectionMerge %495 None - OpBranchConditional %204 %207 %495 - %207 = OpLabel - %208 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %209 = OpCompositeExtract %uint %208 0 - %210 = OpIMul %uint %209 %44 - %211 = OpShiftRightLogical %uint %210 %uint_1 - %212 = OpIMul %uint %209 %41 - %213 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %214 = OpLoad %uint %213 - %215 = OpIAdd %uint %212 %214 - %216 = OpUMod %uint %215 %211 - %217 = OpULessThanEqual %bool %211 %215 - %218 = OpIAdd %uint %41 %uint_1 - %220 = OpIAdd %uint %44 %uint_4294967295 - %221 = OpUMod %uint %214 %220 - %222 = OpIAdd %uint %218 %221 - %223 = OpUMod %uint %222 %44 - %224 = OpIMul %uint %223 %209 - %226 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_7 - %227 = OpLoad %uint %226 - %228 = OpIMul %uint %227 %214 - %229 = OpUMod %uint %228 %209 - %230 = OpIAdd %uint %229 %224 - %231 = OpUMod %uint %230 %211 - %232 = OpULessThanEqual %bool %211 %230 - OpSelectionMerge %251 None - OpBranchConditional %217 %235 %251 - %235 = OpLabel - %237 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_8 - %238 = OpLoad %uint %237 - %239 = OpIMul %uint %238 %216 - %240 = OpUMod %uint %239 %211 - %242 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %243 = OpLoad %uint %242 - %244 = OpShiftLeftLogical %uint %240 %uint_1 - %245 = OpIMul %uint %244 %243 - %247 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_11 - %248 = OpLoad %uint %247 - %249 = OpIAdd %uint %245 %248 - OpBranch %251 - %251 = OpLabel - %252 = OpPhi %uint %249 %235 %499 %207 - %253 = OpPhi %uint %243 %235 %499 %207 - %254 = OpPhi %bool %false %235 %true %207 - OpSelectionMerge %263 None - OpBranchConditional %254 %257 %263 - %257 = OpLabel - %258 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %259 = OpLoad %uint %258 - %260 = OpShiftLeftLogical %uint %216 %uint_1 - %261 = OpIMul %uint %260 %259 - OpBranch %263 - %263 = OpLabel - %264 = OpPhi %uint %259 %257 %253 %251 - %265 = OpPhi %uint %261 %257 %252 %251 - %266 = OpShiftLeftLogical %uint %231 %uint_1 - %267 = OpIMul %uint %266 %264 - %268 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_8 - %269 = OpLoad %uint %268 - %270 = OpIMul %uint %269 %231 - %271 = OpUMod %uint %270 %211 - %272 = OpShiftLeftLogical %uint %264 %uint_1 - %273 = OpIMul %uint %272 %271 - %274 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_11 - %275 = OpLoad %uint %274 - %276 = OpIAdd %uint %273 %275 - %278 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_4 - %279 = OpLoad %uint %278 - %280 = OpINotEqual %bool %279 %uint_0 - OpSelectionMerge %427 None - OpBranchConditional %280 %283 %427 - %283 = OpLabel - %285 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_5 - %286 = OpLoad %uint %285 - %288 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_6 - %289 = OpLoad %uint %288 - %290 = OpINotEqual %bool %286 %uint_0 - OpSelectionMerge %425 None - OpBranchConditional %290 %293 %425 - %293 = OpLabel - %294 = OpPhi %uint %420 %419 %uint_0 %283 - OpLoopMerge %423 %419 None - OpBranch %297 - %297 = OpLabel - %298 = OpSGreaterThanEqual %bool %289 %uint_2 - OpSelectionMerge %350 None - OpBranchConditional %298 %301 %350 - %301 = OpLabel - %302 = OpSGreaterThanEqual %bool %289 %uint_3 - OpSelectionMerge %324 None - OpBranchConditional %302 %305 %324 - %305 = OpLabel - %306 = OpIEqual %bool %289 %uint_3 - OpSelectionMerge %321 None - OpBranchConditional %306 %309 %321 - %309 = OpLabel - %310 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %311 = OpLoad %uint %310 - %312 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %313 = OpLoad %uint %312 - %314 = OpIAdd %uint %313 %311 - %315 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %314 - %316 = OpLoad %uint %315 - %317 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %316 - %318 = OpLoad %uint %317 - %319 = OpULessThanEqual %bool %318 %uint_100 - OpBranch %321 - %321 = OpLabel - %322 = OpPhi %bool %319 %309 %true %305 - OpBranch %324 - %324 = OpLabel - %325 = OpPhi %bool %322 %321 %false %301 - %326 = OpPhi %bool %false %321 %true %301 - OpSelectionMerge %347 None - OpBranchConditional %326 %329 %347 - %329 = OpLabel - %330 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %331 = OpLoad %uint %330 - %332 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %333 = OpLoad %uint %332 - %334 = OpIAdd %uint %333 %331 - %335 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %334 - %336 = OpLoad %uint %335 - %337 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %336 - %338 = OpLoad %uint %337 - %339 = OpULessThanEqual %bool %338 %uint_100 - OpSelectionMerge %344 None - OpBranchConditional %339 %342 %344 - %342 = OpLabel - OpStore %337 %294 - OpBranch %344 - %344 = OpLabel - %345 = OpPhi %bool %true %342 %325 %329 - OpBranch %347 - %347 = OpLabel - %348 = OpPhi %bool %345 %344 %325 %324 - OpBranch %350 - %350 = OpLabel - %351 = OpPhi %bool %348 %347 %false %297 - %352 = OpPhi %bool %false %347 %true %297 - OpSelectionMerge %412 None - OpBranchConditional %352 %355 %412 - %355 = OpLabel - %356 = OpSGreaterThanEqual %bool %289 %uint_1 - OpSelectionMerge %379 None - OpBranchConditional %356 %359 %379 - %359 = OpLabel - %360 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %361 = OpLoad %uint %360 - %362 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %363 = OpLoad %uint %362 - %364 = OpIAdd %uint %363 %361 - %365 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %364 - %366 = OpLoad %uint %365 - %367 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %366 - OpStore %367 %294 - %368 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %369 = OpLoad %uint %368 - %370 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %371 = OpLoad %uint %370 - %372 = OpIAdd %uint %371 %369 - %373 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %372 - %374 = OpLoad %uint %373 - %375 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %374 - %376 = OpLoad %uint %375 - %377 = OpULessThanEqual %bool %376 %uint_100 - OpBranch %379 - %379 = OpLabel - %380 = OpPhi %bool %377 %359 %351 %355 - %381 = OpPhi %bool %false %359 %true %355 - OpSelectionMerge %409 None - OpBranchConditional %381 %384 %409 - %384 = OpLabel - %385 = OpIEqual %bool %289 %uint_0 - OpSelectionMerge %407 None - OpBranchConditional %385 %388 %407 - %388 = OpLabel - %389 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %390 = OpLoad %uint %389 - %391 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %392 = OpLoad %uint %391 - %393 = OpIAdd %uint %392 %390 - %394 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %393 - %395 = OpLoad %uint %394 - %396 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %395 - OpStore %396 %294 - %397 = OpIAdd %uint %294 %uint_1 - %398 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %399 = OpLoad %uint %398 - %400 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %401 = OpLoad %uint %400 - %402 = OpIAdd %uint %401 %399 - %403 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %402 - %404 = OpLoad %uint %403 - %405 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %404 - OpStore %405 %397 - OpBranch %407 - %407 = OpLabel - OpBranch %409 - %409 = OpLabel - %410 = OpPhi %bool %true %407 %380 %379 - OpBranch %412 - %412 = OpLabel - %413 = OpPhi %bool %410 %409 %351 %350 - OpBranchConditional %413 %415 %419 - %415 = OpLabel - %416 = OpIAdd %uint %294 %uint_1 - %417 = OpUGreaterThanEqual %bool %416 %286 - OpBranch %419 - %419 = OpLabel - %420 = OpPhi %uint %416 %415 %499 %412 - %421 = OpPhi %bool %417 %415 %true %412 - OpBranchConditional %421 %423 %293 - %423 = OpLabel - OpBranch %425 - %425 = OpLabel - OpBranch %427 - %427 = OpLabel - %428 = OpLoad %uint %32 - %429 = OpINotEqual %bool %428 %uint_0 - OpSelectionMerge %458 None - OpBranchConditional %429 %432 %458 - %432 = OpLabel - %433 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %434 = OpCompositeExtract %uint %433 0 - %435 = OpLoad %uint %43 - %436 = OpIMul %uint %434 %435 - %438 = OpAtomicIAdd %uint %31 %uint_1 %uint_64 %uint_1 - %439 = OpULessThan %bool %438 %436 - OpSelectionMerge %456 None - OpBranchConditional %439 %442 %456 - %442 = OpLabel - %443 = OpPhi %uint %445 %442 %uint_0 %432 - %444 = OpAtomicLoad %uint %31 %uint_1 %uint_64 - %445 = OpIAdd %uint %443 %uint_1 - %447 = OpULessThan %bool %443 %uint_1023 - %448 = OpULessThan %bool %444 %436 - %450 = OpSelect %bool %447 %448 %false - %451 = OpLogicalNot %bool %450 - OpLoopMerge %454 %442 None - OpBranchConditional %451 %454 %442 - %454 = OpLabel - OpBranch %456 - %456 = OpLabel - OpBranch %458 - %458 = OpLabel - %459 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %265 - OpAtomicStore %459 %uint_1 %uint_64 %uint_1 - %460 = OpINotEqual %bool %216 %231 - OpSelectionMerge %493 None - OpBranchConditional %460 %463 %493 - %463 = OpLabel - %464 = OpShiftLeftLogical %uint %231 %uint_2 - OpSelectionMerge %478 None - OpBranchConditional %232 %467 %478 - %467 = OpLabel - %468 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %276 - %469 = OpAtomicLoad %uint %468 %uint_1 %uint_64 - %470 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %267 - %471 = OpAtomicLoad %uint %470 %uint_1 %uint_64 - %472 = OpBitwiseOr %uint %464 %uint_3 - %473 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %472 - OpAtomicStore %473 %uint_1 %uint_68 %471 - %475 = OpBitwiseOr %uint %464 %uint_2 - %476 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %475 - OpAtomicStore %476 %uint_1 %uint_68 %469 - OpBranch %478 - %478 = OpLabel - %479 = OpPhi %bool %false %467 %true %463 - OpSelectionMerge %491 None - OpBranchConditional %479 %482 %491 - %482 = OpLabel - %483 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %267 - %484 = OpAtomicLoad %uint %483 %uint_1 %uint_64 - %485 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %276 - %486 = OpAtomicLoad %uint %485 %uint_1 %uint_64 - %487 = OpBitwiseOr %uint %464 %uint_1 - %488 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %487 - OpAtomicStore %488 %uint_1 %uint_68 %486 - %489 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %464 - OpAtomicStore %489 %uint_1 %uint_68 %484 - OpBranch %491 - %491 = OpLabel - OpBranch %493 - %493 = OpLabel - OpBranch %495 - %495 = OpLabel - OpBranch %497 - %497 = OpLabel - OpReturn - OpFunctionEnd - %525 = OpExtInst %void %500 PushConstantRegionGroupOffset %uint_0 %uint_12 - %502 = OpExtInst %void %500 Kernel %27 %501 %uint_7 - %504 = OpExtInst %void %500 ArgumentInfo %503 - %505 = OpExtInst %void %500 ArgumentStorageBuffer %502 %uint_0 %uint_0 %uint_0 %504 - %507 = OpExtInst %void %500 ArgumentInfo %506 - %508 = OpExtInst %void %500 ArgumentStorageBuffer %502 %uint_1 %uint_0 %uint_1 %507 - %510 = OpExtInst %void %500 ArgumentInfo %509 - %511 = OpExtInst %void %500 ArgumentStorageBuffer %502 %uint_2 %uint_0 %uint_2 %510 - %513 = OpExtInst %void %500 ArgumentInfo %512 - %514 = OpExtInst %void %500 ArgumentStorageBuffer %502 %uint_3 %uint_0 %uint_3 %513 - %516 = OpExtInst %void %500 ArgumentInfo %515 - %517 = OpExtInst %void %500 ArgumentStorageBuffer %502 %uint_4 %uint_0 %uint_4 %516 - %519 = OpExtInst %void %500 ArgumentInfo %518 - %520 = OpExtInst %void %500 ArgumentStorageBuffer %502 %uint_5 %uint_0 %uint_5 %519 - %522 = OpExtInst %void %500 ArgumentInfo %521 - %523 = OpExtInst %void %500 ArgumentStorageBuffer %502 %uint_6 %uint_0 %uint_6 %522 - %526 = OpExtInst %void %500 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/isa2-acq.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/isa2-acq.spv.dis deleted file mode 100644 index dd96b4bf11..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/isa2-acq.spv.dis +++ /dev/null @@ -1,550 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 499 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %472 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %27 "litmus_test" %gl_LocalInvocationID %gl_WorkGroupID - OpSource OpenCL_C 200 - %473 = OpString "litmus_test" - %475 = OpString "test_locations" - %478 = OpString "read_results" - %481 = OpString "shuffled_workgroups" - %484 = OpString "barrier" - %487 = OpString "scratchpad" - %490 = OpString "scratch_locations" - %493 = OpString "stress_params" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_16 0 Offset 0 - OpDecorate %_struct_16 Block - OpDecorate %18 DescriptorSet 0 - OpDecorate %18 Binding 0 - OpDecorate %19 DescriptorSet 0 - OpDecorate %19 Binding 1 - OpDecorate %20 DescriptorSet 0 - OpDecorate %20 Binding 2 - OpDecorate %21 DescriptorSet 0 - OpDecorate %21 Binding 3 - OpDecorate %22 DescriptorSet 0 - OpDecorate %22 Binding 4 - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 5 - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 6 - OpDecorate %6 SpecId 0 - OpDecorate %7 SpecId 1 - OpDecorate %8 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 - %6 = OpSpecConstant %uint 1 - %7 = OpSpecConstant %uint 1 - %8 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %6 %7 %8 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_16 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_16 = OpTypePointer StorageBuffer %_struct_16 - %void = OpTypeVoid - %26 = OpTypeFunction %void -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint - %uint_9 = OpConstant %uint 9 - %bool = OpTypeBool - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 - %uint_100 = OpConstant %uint 100 - %uint_7 = OpConstant %uint 7 -%uint_4294967295 = OpConstant %uint 4294967295 - %uint_10 = OpConstant %uint 10 - %uint_8 = OpConstant %uint 8 - %uint_11 = OpConstant %uint 11 - %uint_4 = OpConstant %uint 4 - %uint_5 = OpConstant %uint 5 - %uint_6 = OpConstant %uint 6 - %uint_64 = OpConstant %uint 64 - %uint_1023 = OpConstant %uint 1023 - %false = OpConstantFalse %bool - %uint_66 = OpConstant %uint 66 - %uint_68 = OpConstant %uint 68 - %true = OpConstantTrue %bool - %471 = OpUndef %uint - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant - %11 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input -%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input - %18 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %19 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %20 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %21 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %22 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %27 = OpFunction %void None %26 - %28 = OpLabel - %31 = OpAccessChain %_ptr_StorageBuffer_uint %21 %uint_0 %uint_0 - %32 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_0 - %34 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %35 = OpLoad %uint %34 - %37 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %38 = OpLoad %uint %37 - %39 = OpIAdd %uint %38 %35 - %40 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_0 %39 - %41 = OpLoad %uint %40 - %43 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_9 - %44 = OpLoad %uint %43 - %46 = OpUGreaterThanEqual %bool %41 %44 - OpSelectionMerge %203 None - OpBranchConditional %46 %49 %203 - %49 = OpLabel - %51 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_1 - %52 = OpLoad %uint %51 - %53 = OpINotEqual %bool %52 %uint_0 - OpSelectionMerge %201 None - OpBranchConditional %53 %56 %201 - %56 = OpLabel - %58 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_2 - %59 = OpLoad %uint %58 - %61 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_3 - %62 = OpLoad %uint %61 - %63 = OpINotEqual %bool %59 %uint_0 - OpSelectionMerge %199 None - OpBranchConditional %63 %66 %199 - %66 = OpLabel - %67 = OpPhi %uint %194 %193 %uint_0 %56 - OpLoopMerge %197 %193 None - OpBranch %70 - %70 = OpLabel - %71 = OpSGreaterThanEqual %bool %62 %uint_2 - OpSelectionMerge %124 None - OpBranchConditional %71 %74 %124 - %74 = OpLabel - %75 = OpSGreaterThanEqual %bool %62 %uint_3 - OpSelectionMerge %98 None - OpBranchConditional %75 %78 %98 - %78 = OpLabel - %79 = OpIEqual %bool %62 %uint_3 - OpSelectionMerge %95 None - OpBranchConditional %79 %82 %95 - %82 = OpLabel - %83 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %84 = OpLoad %uint %83 - %85 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %86 = OpLoad %uint %85 - %87 = OpIAdd %uint %86 %84 - %88 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %87 - %89 = OpLoad %uint %88 - %90 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %89 - %91 = OpLoad %uint %90 - %93 = OpULessThanEqual %bool %91 %uint_100 - OpBranch %95 - %95 = OpLabel - %96 = OpPhi %bool %93 %82 %true %78 - OpBranch %98 - %98 = OpLabel - %99 = OpPhi %bool %96 %95 %false %74 - %100 = OpPhi %bool %false %95 %true %74 - OpSelectionMerge %121 None - OpBranchConditional %100 %103 %121 - %103 = OpLabel - %104 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %105 = OpLoad %uint %104 - %106 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %107 = OpLoad %uint %106 - %108 = OpIAdd %uint %107 %105 - %109 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %108 - %110 = OpLoad %uint %109 - %111 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %110 - %112 = OpLoad %uint %111 - %113 = OpULessThanEqual %bool %112 %uint_100 - OpSelectionMerge %118 None - OpBranchConditional %113 %116 %118 - %116 = OpLabel - OpStore %111 %67 - OpBranch %118 - %118 = OpLabel - %119 = OpPhi %bool %true %116 %99 %103 - OpBranch %121 - %121 = OpLabel - %122 = OpPhi %bool %119 %118 %99 %98 - OpBranch %124 - %124 = OpLabel - %125 = OpPhi %bool %122 %121 %false %70 - %126 = OpPhi %bool %false %121 %true %70 - OpSelectionMerge %186 None - OpBranchConditional %126 %129 %186 - %129 = OpLabel - %130 = OpSGreaterThanEqual %bool %62 %uint_1 - OpSelectionMerge %153 None - OpBranchConditional %130 %133 %153 - %133 = OpLabel - %134 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %135 = OpLoad %uint %134 - %136 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %137 = OpLoad %uint %136 - %138 = OpIAdd %uint %137 %135 - %139 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %138 - %140 = OpLoad %uint %139 - %141 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %140 - OpStore %141 %67 - %142 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %143 = OpLoad %uint %142 - %144 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %145 = OpLoad %uint %144 - %146 = OpIAdd %uint %145 %143 - %147 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %146 - %148 = OpLoad %uint %147 - %149 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %148 - %150 = OpLoad %uint %149 - %151 = OpULessThanEqual %bool %150 %uint_100 - OpBranch %153 - %153 = OpLabel - %154 = OpPhi %bool %151 %133 %125 %129 - %155 = OpPhi %bool %false %133 %true %129 - OpSelectionMerge %183 None - OpBranchConditional %155 %158 %183 - %158 = OpLabel - %159 = OpIEqual %bool %62 %uint_0 - OpSelectionMerge %181 None - OpBranchConditional %159 %162 %181 - %162 = OpLabel - %163 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %164 = OpLoad %uint %163 - %165 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %166 = OpLoad %uint %165 - %167 = OpIAdd %uint %166 %164 - %168 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %167 - %169 = OpLoad %uint %168 - %170 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %169 - OpStore %170 %67 - %171 = OpIAdd %uint %67 %uint_1 - %172 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %173 = OpLoad %uint %172 - %174 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %175 = OpLoad %uint %174 - %176 = OpIAdd %uint %175 %173 - %177 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %176 - %178 = OpLoad %uint %177 - %179 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %178 - OpStore %179 %171 - OpBranch %181 - %181 = OpLabel - OpBranch %183 - %183 = OpLabel - %184 = OpPhi %bool %true %181 %154 %153 - OpBranch %186 - %186 = OpLabel - %187 = OpPhi %bool %184 %183 %125 %124 - OpBranchConditional %187 %189 %193 - %189 = OpLabel - %190 = OpIAdd %uint %67 %uint_1 - %191 = OpUGreaterThanEqual %bool %190 %59 - OpBranch %193 - %193 = OpLabel - %194 = OpPhi %uint %190 %189 %471 %186 - %195 = OpPhi %bool %191 %189 %true %186 - OpBranchConditional %195 %197 %66 - %197 = OpLabel - OpBranch %199 - %199 = OpLabel - OpBranch %201 - %201 = OpLabel - OpBranch %203 - %203 = OpLabel - %204 = OpPhi %bool %false %201 %true %28 - OpSelectionMerge %467 None - OpBranchConditional %204 %207 %467 - %207 = OpLabel - %208 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %209 = OpCompositeExtract %uint %208 0 - %210 = OpIMul %uint %209 %44 - %211 = OpIMul %uint %209 %41 - %212 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %213 = OpLoad %uint %212 - %214 = OpIAdd %uint %211 %213 - %216 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_7 - %217 = OpLoad %uint %216 - %218 = OpIMul %uint %217 %213 - %219 = OpUMod %uint %218 %209 - %220 = OpIAdd %uint %219 %211 - %221 = OpIAdd %uint %41 %uint_1 - %223 = OpIAdd %uint %44 %uint_4294967295 - %224 = OpUMod %uint %213 %223 - %225 = OpIAdd %uint %221 %224 - %226 = OpUMod %uint %225 %44 - %227 = OpIMul %uint %226 %209 - %228 = OpIAdd %uint %227 %219 - %230 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %231 = OpLoad %uint %230 - %232 = OpIMul %uint %231 %uint_3 - %233 = OpIMul %uint %232 %214 - %235 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_8 - %236 = OpLoad %uint %235 - %237 = OpIMul %uint %236 %214 - %238 = OpUMod %uint %237 %210 - %239 = OpIMul %uint %232 %238 - %241 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_11 - %242 = OpLoad %uint %241 - %243 = OpIAdd %uint %239 %242 - %244 = OpIMul %uint %236 %220 - %245 = OpUMod %uint %244 %210 - %246 = OpIMul %uint %232 %245 - %247 = OpIAdd %uint %246 %242 - %248 = OpIMul %uint %245 %236 - %249 = OpUMod %uint %248 %210 - %250 = OpIMul %uint %232 %249 - %251 = OpShiftLeftLogical %uint %242 %uint_1 - %252 = OpIAdd %uint %250 %251 - %253 = OpIMul %uint %232 %228 - %254 = OpIMul %uint %228 %236 - %255 = OpUMod %uint %254 %210 - %256 = OpIMul %uint %255 %236 - %257 = OpUMod %uint %256 %210 - %258 = OpIMul %uint %232 %257 - %259 = OpIAdd %uint %258 %251 - %261 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_4 - %262 = OpLoad %uint %261 - %263 = OpINotEqual %bool %262 %uint_0 - OpSelectionMerge %410 None - OpBranchConditional %263 %266 %410 - %266 = OpLabel - %268 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_5 - %269 = OpLoad %uint %268 - %271 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_6 - %272 = OpLoad %uint %271 - %273 = OpINotEqual %bool %269 %uint_0 - OpSelectionMerge %408 None - OpBranchConditional %273 %276 %408 - %276 = OpLabel - %277 = OpPhi %uint %403 %402 %uint_0 %266 - OpLoopMerge %406 %402 None - OpBranch %280 - %280 = OpLabel - %281 = OpSGreaterThanEqual %bool %272 %uint_2 - OpSelectionMerge %333 None - OpBranchConditional %281 %284 %333 - %284 = OpLabel - %285 = OpSGreaterThanEqual %bool %272 %uint_3 - OpSelectionMerge %307 None - OpBranchConditional %285 %288 %307 - %288 = OpLabel - %289 = OpIEqual %bool %272 %uint_3 - OpSelectionMerge %304 None - OpBranchConditional %289 %292 %304 - %292 = OpLabel - %293 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %294 = OpLoad %uint %293 - %295 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %296 = OpLoad %uint %295 - %297 = OpIAdd %uint %296 %294 - %298 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %297 - %299 = OpLoad %uint %298 - %300 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %299 - %301 = OpLoad %uint %300 - %302 = OpULessThanEqual %bool %301 %uint_100 - OpBranch %304 - %304 = OpLabel - %305 = OpPhi %bool %302 %292 %true %288 - OpBranch %307 - %307 = OpLabel - %308 = OpPhi %bool %305 %304 %false %284 - %309 = OpPhi %bool %false %304 %true %284 - OpSelectionMerge %330 None - OpBranchConditional %309 %312 %330 - %312 = OpLabel - %313 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %314 = OpLoad %uint %313 - %315 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %316 = OpLoad %uint %315 - %317 = OpIAdd %uint %316 %314 - %318 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %317 - %319 = OpLoad %uint %318 - %320 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %319 - %321 = OpLoad %uint %320 - %322 = OpULessThanEqual %bool %321 %uint_100 - OpSelectionMerge %327 None - OpBranchConditional %322 %325 %327 - %325 = OpLabel - OpStore %320 %277 - OpBranch %327 - %327 = OpLabel - %328 = OpPhi %bool %true %325 %308 %312 - OpBranch %330 - %330 = OpLabel - %331 = OpPhi %bool %328 %327 %308 %307 - OpBranch %333 - %333 = OpLabel - %334 = OpPhi %bool %331 %330 %false %280 - %335 = OpPhi %bool %false %330 %true %280 - OpSelectionMerge %395 None - OpBranchConditional %335 %338 %395 - %338 = OpLabel - %339 = OpSGreaterThanEqual %bool %272 %uint_1 - OpSelectionMerge %362 None - OpBranchConditional %339 %342 %362 - %342 = OpLabel - %343 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %344 = OpLoad %uint %343 - %345 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %346 = OpLoad %uint %345 - %347 = OpIAdd %uint %346 %344 - %348 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %347 - %349 = OpLoad %uint %348 - %350 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %349 - OpStore %350 %277 - %351 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %352 = OpLoad %uint %351 - %353 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %354 = OpLoad %uint %353 - %355 = OpIAdd %uint %354 %352 - %356 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %355 - %357 = OpLoad %uint %356 - %358 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %357 - %359 = OpLoad %uint %358 - %360 = OpULessThanEqual %bool %359 %uint_100 - OpBranch %362 - %362 = OpLabel - %363 = OpPhi %bool %360 %342 %334 %338 - %364 = OpPhi %bool %false %342 %true %338 - OpSelectionMerge %392 None - OpBranchConditional %364 %367 %392 - %367 = OpLabel - %368 = OpIEqual %bool %272 %uint_0 - OpSelectionMerge %390 None - OpBranchConditional %368 %371 %390 - %371 = OpLabel - %372 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %373 = OpLoad %uint %372 - %374 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %375 = OpLoad %uint %374 - %376 = OpIAdd %uint %375 %373 - %377 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %376 - %378 = OpLoad %uint %377 - %379 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %378 - OpStore %379 %277 - %380 = OpIAdd %uint %277 %uint_1 - %381 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %382 = OpLoad %uint %381 - %383 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %384 = OpLoad %uint %383 - %385 = OpIAdd %uint %384 %382 - %386 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %385 - %387 = OpLoad %uint %386 - %388 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %387 - OpStore %388 %380 - OpBranch %390 - %390 = OpLabel - OpBranch %392 - %392 = OpLabel - %393 = OpPhi %bool %true %390 %363 %362 - OpBranch %395 - %395 = OpLabel - %396 = OpPhi %bool %393 %392 %334 %333 - OpBranchConditional %396 %398 %402 - %398 = OpLabel - %399 = OpIAdd %uint %277 %uint_1 - %400 = OpUGreaterThanEqual %bool %399 %269 - OpBranch %402 - %402 = OpLabel - %403 = OpPhi %uint %399 %398 %471 %395 - %404 = OpPhi %bool %400 %398 %true %395 - OpBranchConditional %404 %406 %276 - %406 = OpLabel - OpBranch %408 - %408 = OpLabel - OpBranch %410 - %410 = OpLabel - %411 = OpLoad %uint %32 - %412 = OpINotEqual %bool %411 %uint_0 - OpSelectionMerge %441 None - OpBranchConditional %412 %415 %441 - %415 = OpLabel - %416 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %417 = OpCompositeExtract %uint %416 0 - %418 = OpLoad %uint %43 - %419 = OpIMul %uint %417 %418 - %421 = OpAtomicIAdd %uint %31 %uint_1 %uint_64 %uint_1 - %422 = OpULessThan %bool %421 %419 - OpSelectionMerge %439 None - OpBranchConditional %422 %425 %439 - %425 = OpLabel - %426 = OpPhi %uint %428 %425 %uint_0 %415 - %427 = OpAtomicLoad %uint %31 %uint_1 %uint_64 - %428 = OpIAdd %uint %426 %uint_1 - %430 = OpULessThan %bool %426 %uint_1023 - %431 = OpULessThan %bool %427 %419 - %433 = OpSelect %bool %430 %431 %false - %434 = OpLogicalNot %bool %433 - OpLoopMerge %437 %425 None - OpBranchConditional %434 %437 %425 - %437 = OpLabel - OpBranch %439 - %439 = OpLabel - OpBranch %441 - %441 = OpLabel - %442 = OpINotEqual %bool %213 %219 - OpSelectionMerge %465 None - OpBranchConditional %442 %445 %465 - %445 = OpLabel - %446 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %233 - OpAtomicStore %446 %uint_1 %uint_64 %uint_1 - %447 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %243 - OpAtomicStore %447 %uint_1 %uint_64 %uint_1 - %448 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %247 - %449 = OpAtomicLoad %uint %448 %uint_1 %uint_64 - %450 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %252 - OpAtomicStore %450 %uint_1 %uint_64 %449 - %451 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %259 - %453 = OpAtomicLoad %uint %451 %uint_1 %uint_66 - %454 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %253 - %455 = OpAtomicLoad %uint %454 %uint_1 %uint_64 - %456 = OpIMul %uint %220 %uint_3 - %457 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %456 - OpAtomicStore %457 %uint_1 %uint_68 %449 - %459 = OpIMul %uint %228 %uint_3 - %460 = OpIAdd %uint %459 %uint_1 - %461 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %460 - OpAtomicStore %461 %uint_1 %uint_68 %453 - %462 = OpIAdd %uint %459 %uint_2 - %463 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %462 - OpAtomicStore %463 %uint_1 %uint_68 %455 - OpBranch %465 - %465 = OpLabel - OpBranch %467 - %467 = OpLabel - OpBranch %469 - %469 = OpLabel - OpReturn - OpFunctionEnd - %497 = OpExtInst %void %472 PushConstantRegionGroupOffset %uint_0 %uint_12 - %474 = OpExtInst %void %472 Kernel %27 %473 %uint_7 - %476 = OpExtInst %void %472 ArgumentInfo %475 - %477 = OpExtInst %void %472 ArgumentStorageBuffer %474 %uint_0 %uint_0 %uint_0 %476 - %479 = OpExtInst %void %472 ArgumentInfo %478 - %480 = OpExtInst %void %472 ArgumentStorageBuffer %474 %uint_1 %uint_0 %uint_1 %479 - %482 = OpExtInst %void %472 ArgumentInfo %481 - %483 = OpExtInst %void %472 ArgumentStorageBuffer %474 %uint_2 %uint_0 %uint_2 %482 - %485 = OpExtInst %void %472 ArgumentInfo %484 - %486 = OpExtInst %void %472 ArgumentStorageBuffer %474 %uint_3 %uint_0 %uint_3 %485 - %488 = OpExtInst %void %472 ArgumentInfo %487 - %489 = OpExtInst %void %472 ArgumentStorageBuffer %474 %uint_4 %uint_0 %uint_4 %488 - %491 = OpExtInst %void %472 ArgumentInfo %490 - %492 = OpExtInst %void %472 ArgumentStorageBuffer %474 %uint_5 %uint_0 %uint_5 %491 - %494 = OpExtInst %void %472 ArgumentInfo %493 - %495 = OpExtInst %void %472 ArgumentStorageBuffer %474 %uint_6 %uint_0 %uint_6 %494 - %498 = OpExtInst %void %472 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/isa2-addr-dep.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/isa2-addr-dep.spv.dis deleted file mode 100644 index 959e28121f..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/isa2-addr-dep.spv.dis +++ /dev/null @@ -1,551 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 500 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %473 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %27 "litmus_test" %gl_LocalInvocationID %gl_WorkGroupID - OpSource OpenCL_C 200 - %474 = OpString "litmus_test" - %476 = OpString "test_locations" - %479 = OpString "read_results" - %482 = OpString "shuffled_workgroups" - %485 = OpString "barrier" - %488 = OpString "scratchpad" - %491 = OpString "scratch_locations" - %494 = OpString "stress_params" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_16 0 Offset 0 - OpDecorate %_struct_16 Block - OpDecorate %18 DescriptorSet 0 - OpDecorate %18 Binding 0 - OpDecorate %19 DescriptorSet 0 - OpDecorate %19 Binding 1 - OpDecorate %20 DescriptorSet 0 - OpDecorate %20 Binding 2 - OpDecorate %21 DescriptorSet 0 - OpDecorate %21 Binding 3 - OpDecorate %22 DescriptorSet 0 - OpDecorate %22 Binding 4 - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 5 - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 6 - OpDecorate %6 SpecId 0 - OpDecorate %7 SpecId 1 - OpDecorate %8 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 - %6 = OpSpecConstant %uint 1 - %7 = OpSpecConstant %uint 1 - %8 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %6 %7 %8 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_16 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_16 = OpTypePointer StorageBuffer %_struct_16 - %void = OpTypeVoid - %26 = OpTypeFunction %void -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint - %uint_9 = OpConstant %uint 9 - %bool = OpTypeBool - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 - %uint_100 = OpConstant %uint 100 - %uint_7 = OpConstant %uint 7 -%uint_4294967295 = OpConstant %uint 4294967295 - %uint_10 = OpConstant %uint 10 - %uint_8 = OpConstant %uint 8 - %uint_11 = OpConstant %uint 11 - %uint_4 = OpConstant %uint 4 - %uint_5 = OpConstant %uint 5 - %uint_6 = OpConstant %uint 6 - %uint_64 = OpConstant %uint 64 - %uint_1023 = OpConstant %uint 1023 - %false = OpConstantFalse %bool - %uint_68 = OpConstant %uint 68 - %true = OpConstantTrue %bool - %472 = OpUndef %uint - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant - %11 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input -%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input - %18 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %19 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %20 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %21 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %22 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %27 = OpFunction %void None %26 - %28 = OpLabel - %31 = OpAccessChain %_ptr_StorageBuffer_uint %21 %uint_0 %uint_0 - %32 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_0 - %34 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %35 = OpLoad %uint %34 - %37 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %38 = OpLoad %uint %37 - %39 = OpIAdd %uint %38 %35 - %40 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_0 %39 - %41 = OpLoad %uint %40 - %43 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_9 - %44 = OpLoad %uint %43 - %46 = OpUGreaterThanEqual %bool %41 %44 - OpSelectionMerge %203 None - OpBranchConditional %46 %49 %203 - %49 = OpLabel - %51 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_1 - %52 = OpLoad %uint %51 - %53 = OpINotEqual %bool %52 %uint_0 - OpSelectionMerge %201 None - OpBranchConditional %53 %56 %201 - %56 = OpLabel - %58 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_2 - %59 = OpLoad %uint %58 - %61 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_3 - %62 = OpLoad %uint %61 - %63 = OpINotEqual %bool %59 %uint_0 - OpSelectionMerge %199 None - OpBranchConditional %63 %66 %199 - %66 = OpLabel - %67 = OpPhi %uint %194 %193 %uint_0 %56 - OpLoopMerge %197 %193 None - OpBranch %70 - %70 = OpLabel - %71 = OpSGreaterThanEqual %bool %62 %uint_2 - OpSelectionMerge %124 None - OpBranchConditional %71 %74 %124 - %74 = OpLabel - %75 = OpSGreaterThanEqual %bool %62 %uint_3 - OpSelectionMerge %98 None - OpBranchConditional %75 %78 %98 - %78 = OpLabel - %79 = OpIEqual %bool %62 %uint_3 - OpSelectionMerge %95 None - OpBranchConditional %79 %82 %95 - %82 = OpLabel - %83 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %84 = OpLoad %uint %83 - %85 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %86 = OpLoad %uint %85 - %87 = OpIAdd %uint %86 %84 - %88 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %87 - %89 = OpLoad %uint %88 - %90 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %89 - %91 = OpLoad %uint %90 - %93 = OpULessThanEqual %bool %91 %uint_100 - OpBranch %95 - %95 = OpLabel - %96 = OpPhi %bool %93 %82 %true %78 - OpBranch %98 - %98 = OpLabel - %99 = OpPhi %bool %96 %95 %false %74 - %100 = OpPhi %bool %false %95 %true %74 - OpSelectionMerge %121 None - OpBranchConditional %100 %103 %121 - %103 = OpLabel - %104 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %105 = OpLoad %uint %104 - %106 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %107 = OpLoad %uint %106 - %108 = OpIAdd %uint %107 %105 - %109 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %108 - %110 = OpLoad %uint %109 - %111 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %110 - %112 = OpLoad %uint %111 - %113 = OpULessThanEqual %bool %112 %uint_100 - OpSelectionMerge %118 None - OpBranchConditional %113 %116 %118 - %116 = OpLabel - OpStore %111 %67 - OpBranch %118 - %118 = OpLabel - %119 = OpPhi %bool %true %116 %99 %103 - OpBranch %121 - %121 = OpLabel - %122 = OpPhi %bool %119 %118 %99 %98 - OpBranch %124 - %124 = OpLabel - %125 = OpPhi %bool %122 %121 %false %70 - %126 = OpPhi %bool %false %121 %true %70 - OpSelectionMerge %186 None - OpBranchConditional %126 %129 %186 - %129 = OpLabel - %130 = OpSGreaterThanEqual %bool %62 %uint_1 - OpSelectionMerge %153 None - OpBranchConditional %130 %133 %153 - %133 = OpLabel - %134 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %135 = OpLoad %uint %134 - %136 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %137 = OpLoad %uint %136 - %138 = OpIAdd %uint %137 %135 - %139 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %138 - %140 = OpLoad %uint %139 - %141 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %140 - OpStore %141 %67 - %142 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %143 = OpLoad %uint %142 - %144 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %145 = OpLoad %uint %144 - %146 = OpIAdd %uint %145 %143 - %147 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %146 - %148 = OpLoad %uint %147 - %149 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %148 - %150 = OpLoad %uint %149 - %151 = OpULessThanEqual %bool %150 %uint_100 - OpBranch %153 - %153 = OpLabel - %154 = OpPhi %bool %151 %133 %125 %129 - %155 = OpPhi %bool %false %133 %true %129 - OpSelectionMerge %183 None - OpBranchConditional %155 %158 %183 - %158 = OpLabel - %159 = OpIEqual %bool %62 %uint_0 - OpSelectionMerge %181 None - OpBranchConditional %159 %162 %181 - %162 = OpLabel - %163 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %164 = OpLoad %uint %163 - %165 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %166 = OpLoad %uint %165 - %167 = OpIAdd %uint %166 %164 - %168 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %167 - %169 = OpLoad %uint %168 - %170 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %169 - OpStore %170 %67 - %171 = OpIAdd %uint %67 %uint_1 - %172 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %173 = OpLoad %uint %172 - %174 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %175 = OpLoad %uint %174 - %176 = OpIAdd %uint %175 %173 - %177 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %176 - %178 = OpLoad %uint %177 - %179 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %178 - OpStore %179 %171 - OpBranch %181 - %181 = OpLabel - OpBranch %183 - %183 = OpLabel - %184 = OpPhi %bool %true %181 %154 %153 - OpBranch %186 - %186 = OpLabel - %187 = OpPhi %bool %184 %183 %125 %124 - OpBranchConditional %187 %189 %193 - %189 = OpLabel - %190 = OpIAdd %uint %67 %uint_1 - %191 = OpUGreaterThanEqual %bool %190 %59 - OpBranch %193 - %193 = OpLabel - %194 = OpPhi %uint %190 %189 %472 %186 - %195 = OpPhi %bool %191 %189 %true %186 - OpBranchConditional %195 %197 %66 - %197 = OpLabel - OpBranch %199 - %199 = OpLabel - OpBranch %201 - %201 = OpLabel - OpBranch %203 - %203 = OpLabel - %204 = OpPhi %bool %false %201 %true %28 - OpSelectionMerge %468 None - OpBranchConditional %204 %207 %468 - %207 = OpLabel - %208 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %209 = OpCompositeExtract %uint %208 0 - %210 = OpIMul %uint %209 %44 - %211 = OpIMul %uint %209 %41 - %212 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %213 = OpLoad %uint %212 - %214 = OpIAdd %uint %211 %213 - %216 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_7 - %217 = OpLoad %uint %216 - %218 = OpIMul %uint %217 %213 - %219 = OpUMod %uint %218 %209 - %220 = OpIAdd %uint %219 %211 - %221 = OpIAdd %uint %41 %uint_1 - %223 = OpIAdd %uint %44 %uint_4294967295 - %224 = OpUMod %uint %213 %223 - %225 = OpIAdd %uint %221 %224 - %226 = OpUMod %uint %225 %44 - %227 = OpIMul %uint %226 %209 - %228 = OpIAdd %uint %227 %219 - %230 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %231 = OpLoad %uint %230 - %232 = OpIMul %uint %231 %uint_3 - %233 = OpIMul %uint %232 %214 - %235 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_8 - %236 = OpLoad %uint %235 - %237 = OpIMul %uint %236 %214 - %238 = OpUMod %uint %237 %210 - %239 = OpIMul %uint %232 %238 - %241 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_11 - %242 = OpLoad %uint %241 - %243 = OpIAdd %uint %239 %242 - %244 = OpIMul %uint %236 %220 - %245 = OpUMod %uint %244 %210 - %246 = OpIMul %uint %232 %245 - %247 = OpIAdd %uint %246 %242 - %248 = OpIMul %uint %245 %236 - %249 = OpUMod %uint %248 %210 - %250 = OpIMul %uint %232 %249 - %251 = OpShiftLeftLogical %uint %242 %uint_1 - %252 = OpIAdd %uint %250 %251 - %253 = OpIMul %uint %232 %228 - %254 = OpIMul %uint %228 %236 - %255 = OpUMod %uint %254 %210 - %256 = OpIMul %uint %255 %236 - %257 = OpUMod %uint %256 %210 - %258 = OpIMul %uint %232 %257 - %259 = OpIAdd %uint %258 %251 - %261 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_4 - %262 = OpLoad %uint %261 - %263 = OpINotEqual %bool %262 %uint_0 - OpSelectionMerge %410 None - OpBranchConditional %263 %266 %410 - %266 = OpLabel - %268 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_5 - %269 = OpLoad %uint %268 - %271 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_6 - %272 = OpLoad %uint %271 - %273 = OpINotEqual %bool %269 %uint_0 - OpSelectionMerge %408 None - OpBranchConditional %273 %276 %408 - %276 = OpLabel - %277 = OpPhi %uint %403 %402 %uint_0 %266 - OpLoopMerge %406 %402 None - OpBranch %280 - %280 = OpLabel - %281 = OpSGreaterThanEqual %bool %272 %uint_2 - OpSelectionMerge %333 None - OpBranchConditional %281 %284 %333 - %284 = OpLabel - %285 = OpSGreaterThanEqual %bool %272 %uint_3 - OpSelectionMerge %307 None - OpBranchConditional %285 %288 %307 - %288 = OpLabel - %289 = OpIEqual %bool %272 %uint_3 - OpSelectionMerge %304 None - OpBranchConditional %289 %292 %304 - %292 = OpLabel - %293 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %294 = OpLoad %uint %293 - %295 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %296 = OpLoad %uint %295 - %297 = OpIAdd %uint %296 %294 - %298 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %297 - %299 = OpLoad %uint %298 - %300 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %299 - %301 = OpLoad %uint %300 - %302 = OpULessThanEqual %bool %301 %uint_100 - OpBranch %304 - %304 = OpLabel - %305 = OpPhi %bool %302 %292 %true %288 - OpBranch %307 - %307 = OpLabel - %308 = OpPhi %bool %305 %304 %false %284 - %309 = OpPhi %bool %false %304 %true %284 - OpSelectionMerge %330 None - OpBranchConditional %309 %312 %330 - %312 = OpLabel - %313 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %314 = OpLoad %uint %313 - %315 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %316 = OpLoad %uint %315 - %317 = OpIAdd %uint %316 %314 - %318 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %317 - %319 = OpLoad %uint %318 - %320 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %319 - %321 = OpLoad %uint %320 - %322 = OpULessThanEqual %bool %321 %uint_100 - OpSelectionMerge %327 None - OpBranchConditional %322 %325 %327 - %325 = OpLabel - OpStore %320 %277 - OpBranch %327 - %327 = OpLabel - %328 = OpPhi %bool %true %325 %308 %312 - OpBranch %330 - %330 = OpLabel - %331 = OpPhi %bool %328 %327 %308 %307 - OpBranch %333 - %333 = OpLabel - %334 = OpPhi %bool %331 %330 %false %280 - %335 = OpPhi %bool %false %330 %true %280 - OpSelectionMerge %395 None - OpBranchConditional %335 %338 %395 - %338 = OpLabel - %339 = OpSGreaterThanEqual %bool %272 %uint_1 - OpSelectionMerge %362 None - OpBranchConditional %339 %342 %362 - %342 = OpLabel - %343 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %344 = OpLoad %uint %343 - %345 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %346 = OpLoad %uint %345 - %347 = OpIAdd %uint %346 %344 - %348 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %347 - %349 = OpLoad %uint %348 - %350 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %349 - OpStore %350 %277 - %351 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %352 = OpLoad %uint %351 - %353 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %354 = OpLoad %uint %353 - %355 = OpIAdd %uint %354 %352 - %356 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %355 - %357 = OpLoad %uint %356 - %358 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %357 - %359 = OpLoad %uint %358 - %360 = OpULessThanEqual %bool %359 %uint_100 - OpBranch %362 - %362 = OpLabel - %363 = OpPhi %bool %360 %342 %334 %338 - %364 = OpPhi %bool %false %342 %true %338 - OpSelectionMerge %392 None - OpBranchConditional %364 %367 %392 - %367 = OpLabel - %368 = OpIEqual %bool %272 %uint_0 - OpSelectionMerge %390 None - OpBranchConditional %368 %371 %390 - %371 = OpLabel - %372 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %373 = OpLoad %uint %372 - %374 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %375 = OpLoad %uint %374 - %376 = OpIAdd %uint %375 %373 - %377 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %376 - %378 = OpLoad %uint %377 - %379 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %378 - OpStore %379 %277 - %380 = OpIAdd %uint %277 %uint_1 - %381 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %382 = OpLoad %uint %381 - %383 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %384 = OpLoad %uint %383 - %385 = OpIAdd %uint %384 %382 - %386 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %385 - %387 = OpLoad %uint %386 - %388 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %387 - OpStore %388 %380 - OpBranch %390 - %390 = OpLabel - OpBranch %392 - %392 = OpLabel - %393 = OpPhi %bool %true %390 %363 %362 - OpBranch %395 - %395 = OpLabel - %396 = OpPhi %bool %393 %392 %334 %333 - OpBranchConditional %396 %398 %402 - %398 = OpLabel - %399 = OpIAdd %uint %277 %uint_1 - %400 = OpUGreaterThanEqual %bool %399 %269 - OpBranch %402 - %402 = OpLabel - %403 = OpPhi %uint %399 %398 %472 %395 - %404 = OpPhi %bool %400 %398 %true %395 - OpBranchConditional %404 %406 %276 - %406 = OpLabel - OpBranch %408 - %408 = OpLabel - OpBranch %410 - %410 = OpLabel - %411 = OpLoad %uint %32 - %412 = OpINotEqual %bool %411 %uint_0 - OpSelectionMerge %441 None - OpBranchConditional %412 %415 %441 - %415 = OpLabel - %416 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %417 = OpCompositeExtract %uint %416 0 - %418 = OpLoad %uint %43 - %419 = OpIMul %uint %417 %418 - %421 = OpAtomicIAdd %uint %31 %uint_1 %uint_64 %uint_1 - %422 = OpULessThan %bool %421 %419 - OpSelectionMerge %439 None - OpBranchConditional %422 %425 %439 - %425 = OpLabel - %426 = OpPhi %uint %428 %425 %uint_0 %415 - %427 = OpAtomicLoad %uint %31 %uint_1 %uint_64 - %428 = OpIAdd %uint %426 %uint_1 - %430 = OpULessThan %bool %426 %uint_1023 - %431 = OpULessThan %bool %427 %419 - %433 = OpSelect %bool %430 %431 %false - %434 = OpLogicalNot %bool %433 - OpLoopMerge %437 %425 None - OpBranchConditional %434 %437 %425 - %437 = OpLabel - OpBranch %439 - %439 = OpLabel - OpBranch %441 - %441 = OpLabel - %442 = OpINotEqual %bool %213 %219 - OpSelectionMerge %466 None - OpBranchConditional %442 %445 %466 - %445 = OpLabel - %446 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %233 - OpAtomicStore %446 %uint_1 %uint_64 %uint_1 - %447 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %243 - OpAtomicStore %447 %uint_1 %uint_64 %uint_1 - %448 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %247 - %449 = OpAtomicLoad %uint %448 %uint_1 %uint_64 - %450 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %252 - OpAtomicStore %450 %uint_1 %uint_64 %449 - %451 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %259 - %452 = OpAtomicLoad %uint %451 %uint_1 %uint_64 - %453 = OpShiftRightLogical %uint %452 %uint_1 - %454 = OpIAdd %uint %453 %253 - %455 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %454 - %456 = OpAtomicLoad %uint %455 %uint_1 %uint_64 - %457 = OpIMul %uint %220 %uint_3 - %458 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %457 - OpAtomicStore %458 %uint_1 %uint_68 %449 - %460 = OpIMul %uint %228 %uint_3 - %461 = OpIAdd %uint %460 %uint_1 - %462 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %461 - OpAtomicStore %462 %uint_1 %uint_68 %452 - %463 = OpIAdd %uint %460 %uint_2 - %464 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %463 - OpAtomicStore %464 %uint_1 %uint_68 %456 - OpBranch %466 - %466 = OpLabel - OpBranch %468 - %468 = OpLabel - OpBranch %470 - %470 = OpLabel - OpReturn - OpFunctionEnd - %498 = OpExtInst %void %473 PushConstantRegionGroupOffset %uint_0 %uint_12 - %475 = OpExtInst %void %473 Kernel %27 %474 %uint_7 - %477 = OpExtInst %void %473 ArgumentInfo %476 - %478 = OpExtInst %void %473 ArgumentStorageBuffer %475 %uint_0 %uint_0 %uint_0 %477 - %480 = OpExtInst %void %473 ArgumentInfo %479 - %481 = OpExtInst %void %473 ArgumentStorageBuffer %475 %uint_1 %uint_0 %uint_1 %480 - %483 = OpExtInst %void %473 ArgumentInfo %482 - %484 = OpExtInst %void %473 ArgumentStorageBuffer %475 %uint_2 %uint_0 %uint_2 %483 - %486 = OpExtInst %void %473 ArgumentInfo %485 - %487 = OpExtInst %void %473 ArgumentStorageBuffer %475 %uint_3 %uint_0 %uint_3 %486 - %489 = OpExtInst %void %473 ArgumentInfo %488 - %490 = OpExtInst %void %473 ArgumentStorageBuffer %475 %uint_4 %uint_0 %uint_4 %489 - %492 = OpExtInst %void %473 ArgumentInfo %491 - %493 = OpExtInst %void %473 ArgumentStorageBuffer %475 %uint_5 %uint_0 %uint_5 %492 - %495 = OpExtInst %void %473 ArgumentInfo %494 - %496 = OpExtInst %void %473 ArgumentStorageBuffer %475 %uint_6 %uint_0 %uint_6 %495 - %499 = OpExtInst %void %473 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/isa2-rel-data-acq.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/isa2-rel-data-acq.spv.dis deleted file mode 100644 index 036f340be7..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/isa2-rel-data-acq.spv.dis +++ /dev/null @@ -1,550 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 499 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %472 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %27 "litmus_test" %gl_LocalInvocationID %gl_WorkGroupID - OpSource OpenCL_C 200 - %473 = OpString "litmus_test" - %475 = OpString "test_locations" - %478 = OpString "read_results" - %481 = OpString "shuffled_workgroups" - %484 = OpString "barrier" - %487 = OpString "scratchpad" - %490 = OpString "scratch_locations" - %493 = OpString "stress_params" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_16 0 Offset 0 - OpDecorate %_struct_16 Block - OpDecorate %18 DescriptorSet 0 - OpDecorate %18 Binding 0 - OpDecorate %19 DescriptorSet 0 - OpDecorate %19 Binding 1 - OpDecorate %20 DescriptorSet 0 - OpDecorate %20 Binding 2 - OpDecorate %21 DescriptorSet 0 - OpDecorate %21 Binding 3 - OpDecorate %22 DescriptorSet 0 - OpDecorate %22 Binding 4 - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 5 - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 6 - OpDecorate %6 SpecId 0 - OpDecorate %7 SpecId 1 - OpDecorate %8 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 - %6 = OpSpecConstant %uint 1 - %7 = OpSpecConstant %uint 1 - %8 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %6 %7 %8 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_16 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_16 = OpTypePointer StorageBuffer %_struct_16 - %void = OpTypeVoid - %26 = OpTypeFunction %void -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint - %uint_9 = OpConstant %uint 9 - %bool = OpTypeBool - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 - %uint_100 = OpConstant %uint 100 - %uint_7 = OpConstant %uint 7 -%uint_4294967295 = OpConstant %uint 4294967295 - %uint_10 = OpConstant %uint 10 - %uint_8 = OpConstant %uint 8 - %uint_11 = OpConstant %uint 11 - %uint_4 = OpConstant %uint 4 - %uint_5 = OpConstant %uint 5 - %uint_6 = OpConstant %uint 6 - %uint_64 = OpConstant %uint 64 - %uint_1023 = OpConstant %uint 1023 - %false = OpConstantFalse %bool - %uint_68 = OpConstant %uint 68 - %uint_66 = OpConstant %uint 66 - %true = OpConstantTrue %bool - %471 = OpUndef %uint - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant - %11 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input -%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input - %18 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %19 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %20 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %21 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %22 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %27 = OpFunction %void None %26 - %28 = OpLabel - %31 = OpAccessChain %_ptr_StorageBuffer_uint %21 %uint_0 %uint_0 - %32 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_0 - %34 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %35 = OpLoad %uint %34 - %37 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %38 = OpLoad %uint %37 - %39 = OpIAdd %uint %38 %35 - %40 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_0 %39 - %41 = OpLoad %uint %40 - %43 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_9 - %44 = OpLoad %uint %43 - %46 = OpUGreaterThanEqual %bool %41 %44 - OpSelectionMerge %203 None - OpBranchConditional %46 %49 %203 - %49 = OpLabel - %51 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_1 - %52 = OpLoad %uint %51 - %53 = OpINotEqual %bool %52 %uint_0 - OpSelectionMerge %201 None - OpBranchConditional %53 %56 %201 - %56 = OpLabel - %58 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_2 - %59 = OpLoad %uint %58 - %61 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_3 - %62 = OpLoad %uint %61 - %63 = OpINotEqual %bool %59 %uint_0 - OpSelectionMerge %199 None - OpBranchConditional %63 %66 %199 - %66 = OpLabel - %67 = OpPhi %uint %194 %193 %uint_0 %56 - OpLoopMerge %197 %193 None - OpBranch %70 - %70 = OpLabel - %71 = OpSGreaterThanEqual %bool %62 %uint_2 - OpSelectionMerge %124 None - OpBranchConditional %71 %74 %124 - %74 = OpLabel - %75 = OpSGreaterThanEqual %bool %62 %uint_3 - OpSelectionMerge %98 None - OpBranchConditional %75 %78 %98 - %78 = OpLabel - %79 = OpIEqual %bool %62 %uint_3 - OpSelectionMerge %95 None - OpBranchConditional %79 %82 %95 - %82 = OpLabel - %83 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %84 = OpLoad %uint %83 - %85 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %86 = OpLoad %uint %85 - %87 = OpIAdd %uint %86 %84 - %88 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %87 - %89 = OpLoad %uint %88 - %90 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %89 - %91 = OpLoad %uint %90 - %93 = OpULessThanEqual %bool %91 %uint_100 - OpBranch %95 - %95 = OpLabel - %96 = OpPhi %bool %93 %82 %true %78 - OpBranch %98 - %98 = OpLabel - %99 = OpPhi %bool %96 %95 %false %74 - %100 = OpPhi %bool %false %95 %true %74 - OpSelectionMerge %121 None - OpBranchConditional %100 %103 %121 - %103 = OpLabel - %104 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %105 = OpLoad %uint %104 - %106 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %107 = OpLoad %uint %106 - %108 = OpIAdd %uint %107 %105 - %109 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %108 - %110 = OpLoad %uint %109 - %111 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %110 - %112 = OpLoad %uint %111 - %113 = OpULessThanEqual %bool %112 %uint_100 - OpSelectionMerge %118 None - OpBranchConditional %113 %116 %118 - %116 = OpLabel - OpStore %111 %67 - OpBranch %118 - %118 = OpLabel - %119 = OpPhi %bool %true %116 %99 %103 - OpBranch %121 - %121 = OpLabel - %122 = OpPhi %bool %119 %118 %99 %98 - OpBranch %124 - %124 = OpLabel - %125 = OpPhi %bool %122 %121 %false %70 - %126 = OpPhi %bool %false %121 %true %70 - OpSelectionMerge %186 None - OpBranchConditional %126 %129 %186 - %129 = OpLabel - %130 = OpSGreaterThanEqual %bool %62 %uint_1 - OpSelectionMerge %153 None - OpBranchConditional %130 %133 %153 - %133 = OpLabel - %134 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %135 = OpLoad %uint %134 - %136 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %137 = OpLoad %uint %136 - %138 = OpIAdd %uint %137 %135 - %139 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %138 - %140 = OpLoad %uint %139 - %141 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %140 - OpStore %141 %67 - %142 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %143 = OpLoad %uint %142 - %144 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %145 = OpLoad %uint %144 - %146 = OpIAdd %uint %145 %143 - %147 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %146 - %148 = OpLoad %uint %147 - %149 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %148 - %150 = OpLoad %uint %149 - %151 = OpULessThanEqual %bool %150 %uint_100 - OpBranch %153 - %153 = OpLabel - %154 = OpPhi %bool %151 %133 %125 %129 - %155 = OpPhi %bool %false %133 %true %129 - OpSelectionMerge %183 None - OpBranchConditional %155 %158 %183 - %158 = OpLabel - %159 = OpIEqual %bool %62 %uint_0 - OpSelectionMerge %181 None - OpBranchConditional %159 %162 %181 - %162 = OpLabel - %163 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %164 = OpLoad %uint %163 - %165 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %166 = OpLoad %uint %165 - %167 = OpIAdd %uint %166 %164 - %168 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %167 - %169 = OpLoad %uint %168 - %170 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %169 - OpStore %170 %67 - %171 = OpIAdd %uint %67 %uint_1 - %172 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %173 = OpLoad %uint %172 - %174 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %175 = OpLoad %uint %174 - %176 = OpIAdd %uint %175 %173 - %177 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %176 - %178 = OpLoad %uint %177 - %179 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %178 - OpStore %179 %171 - OpBranch %181 - %181 = OpLabel - OpBranch %183 - %183 = OpLabel - %184 = OpPhi %bool %true %181 %154 %153 - OpBranch %186 - %186 = OpLabel - %187 = OpPhi %bool %184 %183 %125 %124 - OpBranchConditional %187 %189 %193 - %189 = OpLabel - %190 = OpIAdd %uint %67 %uint_1 - %191 = OpUGreaterThanEqual %bool %190 %59 - OpBranch %193 - %193 = OpLabel - %194 = OpPhi %uint %190 %189 %471 %186 - %195 = OpPhi %bool %191 %189 %true %186 - OpBranchConditional %195 %197 %66 - %197 = OpLabel - OpBranch %199 - %199 = OpLabel - OpBranch %201 - %201 = OpLabel - OpBranch %203 - %203 = OpLabel - %204 = OpPhi %bool %false %201 %true %28 - OpSelectionMerge %467 None - OpBranchConditional %204 %207 %467 - %207 = OpLabel - %208 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %209 = OpCompositeExtract %uint %208 0 - %210 = OpIMul %uint %209 %44 - %211 = OpIMul %uint %209 %41 - %212 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %213 = OpLoad %uint %212 - %214 = OpIAdd %uint %211 %213 - %216 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_7 - %217 = OpLoad %uint %216 - %218 = OpIMul %uint %217 %213 - %219 = OpUMod %uint %218 %209 - %220 = OpIAdd %uint %219 %211 - %221 = OpIAdd %uint %41 %uint_1 - %223 = OpIAdd %uint %44 %uint_4294967295 - %224 = OpUMod %uint %213 %223 - %225 = OpIAdd %uint %221 %224 - %226 = OpUMod %uint %225 %44 - %227 = OpIMul %uint %226 %209 - %228 = OpIAdd %uint %227 %219 - %230 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %231 = OpLoad %uint %230 - %232 = OpIMul %uint %231 %uint_3 - %233 = OpIMul %uint %232 %214 - %235 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_8 - %236 = OpLoad %uint %235 - %237 = OpIMul %uint %236 %214 - %238 = OpUMod %uint %237 %210 - %239 = OpIMul %uint %232 %238 - %241 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_11 - %242 = OpLoad %uint %241 - %243 = OpIAdd %uint %239 %242 - %244 = OpIMul %uint %236 %220 - %245 = OpUMod %uint %244 %210 - %246 = OpIMul %uint %232 %245 - %247 = OpIAdd %uint %246 %242 - %248 = OpIMul %uint %245 %236 - %249 = OpUMod %uint %248 %210 - %250 = OpIMul %uint %232 %249 - %251 = OpShiftLeftLogical %uint %242 %uint_1 - %252 = OpIAdd %uint %250 %251 - %253 = OpIMul %uint %232 %228 - %254 = OpIMul %uint %228 %236 - %255 = OpUMod %uint %254 %210 - %256 = OpIMul %uint %255 %236 - %257 = OpUMod %uint %256 %210 - %258 = OpIMul %uint %232 %257 - %259 = OpIAdd %uint %258 %251 - %261 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_4 - %262 = OpLoad %uint %261 - %263 = OpINotEqual %bool %262 %uint_0 - OpSelectionMerge %410 None - OpBranchConditional %263 %266 %410 - %266 = OpLabel - %268 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_5 - %269 = OpLoad %uint %268 - %271 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_6 - %272 = OpLoad %uint %271 - %273 = OpINotEqual %bool %269 %uint_0 - OpSelectionMerge %408 None - OpBranchConditional %273 %276 %408 - %276 = OpLabel - %277 = OpPhi %uint %403 %402 %uint_0 %266 - OpLoopMerge %406 %402 None - OpBranch %280 - %280 = OpLabel - %281 = OpSGreaterThanEqual %bool %272 %uint_2 - OpSelectionMerge %333 None - OpBranchConditional %281 %284 %333 - %284 = OpLabel - %285 = OpSGreaterThanEqual %bool %272 %uint_3 - OpSelectionMerge %307 None - OpBranchConditional %285 %288 %307 - %288 = OpLabel - %289 = OpIEqual %bool %272 %uint_3 - OpSelectionMerge %304 None - OpBranchConditional %289 %292 %304 - %292 = OpLabel - %293 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %294 = OpLoad %uint %293 - %295 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %296 = OpLoad %uint %295 - %297 = OpIAdd %uint %296 %294 - %298 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %297 - %299 = OpLoad %uint %298 - %300 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %299 - %301 = OpLoad %uint %300 - %302 = OpULessThanEqual %bool %301 %uint_100 - OpBranch %304 - %304 = OpLabel - %305 = OpPhi %bool %302 %292 %true %288 - OpBranch %307 - %307 = OpLabel - %308 = OpPhi %bool %305 %304 %false %284 - %309 = OpPhi %bool %false %304 %true %284 - OpSelectionMerge %330 None - OpBranchConditional %309 %312 %330 - %312 = OpLabel - %313 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %314 = OpLoad %uint %313 - %315 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %316 = OpLoad %uint %315 - %317 = OpIAdd %uint %316 %314 - %318 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %317 - %319 = OpLoad %uint %318 - %320 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %319 - %321 = OpLoad %uint %320 - %322 = OpULessThanEqual %bool %321 %uint_100 - OpSelectionMerge %327 None - OpBranchConditional %322 %325 %327 - %325 = OpLabel - OpStore %320 %277 - OpBranch %327 - %327 = OpLabel - %328 = OpPhi %bool %true %325 %308 %312 - OpBranch %330 - %330 = OpLabel - %331 = OpPhi %bool %328 %327 %308 %307 - OpBranch %333 - %333 = OpLabel - %334 = OpPhi %bool %331 %330 %false %280 - %335 = OpPhi %bool %false %330 %true %280 - OpSelectionMerge %395 None - OpBranchConditional %335 %338 %395 - %338 = OpLabel - %339 = OpSGreaterThanEqual %bool %272 %uint_1 - OpSelectionMerge %362 None - OpBranchConditional %339 %342 %362 - %342 = OpLabel - %343 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %344 = OpLoad %uint %343 - %345 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %346 = OpLoad %uint %345 - %347 = OpIAdd %uint %346 %344 - %348 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %347 - %349 = OpLoad %uint %348 - %350 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %349 - OpStore %350 %277 - %351 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %352 = OpLoad %uint %351 - %353 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %354 = OpLoad %uint %353 - %355 = OpIAdd %uint %354 %352 - %356 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %355 - %357 = OpLoad %uint %356 - %358 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %357 - %359 = OpLoad %uint %358 - %360 = OpULessThanEqual %bool %359 %uint_100 - OpBranch %362 - %362 = OpLabel - %363 = OpPhi %bool %360 %342 %334 %338 - %364 = OpPhi %bool %false %342 %true %338 - OpSelectionMerge %392 None - OpBranchConditional %364 %367 %392 - %367 = OpLabel - %368 = OpIEqual %bool %272 %uint_0 - OpSelectionMerge %390 None - OpBranchConditional %368 %371 %390 - %371 = OpLabel - %372 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %373 = OpLoad %uint %372 - %374 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %375 = OpLoad %uint %374 - %376 = OpIAdd %uint %375 %373 - %377 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %376 - %378 = OpLoad %uint %377 - %379 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %378 - OpStore %379 %277 - %380 = OpIAdd %uint %277 %uint_1 - %381 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %382 = OpLoad %uint %381 - %383 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %384 = OpLoad %uint %383 - %385 = OpIAdd %uint %384 %382 - %386 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %385 - %387 = OpLoad %uint %386 - %388 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %387 - OpStore %388 %380 - OpBranch %390 - %390 = OpLabel - OpBranch %392 - %392 = OpLabel - %393 = OpPhi %bool %true %390 %363 %362 - OpBranch %395 - %395 = OpLabel - %396 = OpPhi %bool %393 %392 %334 %333 - OpBranchConditional %396 %398 %402 - %398 = OpLabel - %399 = OpIAdd %uint %277 %uint_1 - %400 = OpUGreaterThanEqual %bool %399 %269 - OpBranch %402 - %402 = OpLabel - %403 = OpPhi %uint %399 %398 %471 %395 - %404 = OpPhi %bool %400 %398 %true %395 - OpBranchConditional %404 %406 %276 - %406 = OpLabel - OpBranch %408 - %408 = OpLabel - OpBranch %410 - %410 = OpLabel - %411 = OpLoad %uint %32 - %412 = OpINotEqual %bool %411 %uint_0 - OpSelectionMerge %441 None - OpBranchConditional %412 %415 %441 - %415 = OpLabel - %416 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %417 = OpCompositeExtract %uint %416 0 - %418 = OpLoad %uint %43 - %419 = OpIMul %uint %417 %418 - %421 = OpAtomicIAdd %uint %31 %uint_1 %uint_64 %uint_1 - %422 = OpULessThan %bool %421 %419 - OpSelectionMerge %439 None - OpBranchConditional %422 %425 %439 - %425 = OpLabel - %426 = OpPhi %uint %428 %425 %uint_0 %415 - %427 = OpAtomicLoad %uint %31 %uint_1 %uint_64 - %428 = OpIAdd %uint %426 %uint_1 - %430 = OpULessThan %bool %426 %uint_1023 - %431 = OpULessThan %bool %427 %419 - %433 = OpSelect %bool %430 %431 %false - %434 = OpLogicalNot %bool %433 - OpLoopMerge %437 %425 None - OpBranchConditional %434 %437 %425 - %437 = OpLabel - OpBranch %439 - %439 = OpLabel - OpBranch %441 - %441 = OpLabel - %442 = OpINotEqual %bool %213 %219 - OpSelectionMerge %465 None - OpBranchConditional %442 %445 %465 - %445 = OpLabel - %446 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %233 - OpAtomicStore %446 %uint_1 %uint_64 %uint_1 - %447 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %243 - OpAtomicStore %447 %uint_1 %uint_68 %uint_1 - %449 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %247 - %450 = OpAtomicLoad %uint %449 %uint_1 %uint_64 - %451 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %252 - OpAtomicStore %451 %uint_1 %uint_64 %450 - %452 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %259 - %454 = OpAtomicLoad %uint %452 %uint_1 %uint_66 - %455 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %253 - %456 = OpAtomicLoad %uint %455 %uint_1 %uint_64 - %457 = OpIMul %uint %220 %uint_3 - %458 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %457 - OpAtomicStore %458 %uint_1 %uint_68 %450 - %459 = OpIMul %uint %228 %uint_3 - %460 = OpIAdd %uint %459 %uint_1 - %461 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %460 - OpAtomicStore %461 %uint_1 %uint_68 %454 - %462 = OpIAdd %uint %459 %uint_2 - %463 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %462 - OpAtomicStore %463 %uint_1 %uint_68 %456 - OpBranch %465 - %465 = OpLabel - OpBranch %467 - %467 = OpLabel - OpBranch %469 - %469 = OpLabel - OpReturn - OpFunctionEnd - %497 = OpExtInst %void %472 PushConstantRegionGroupOffset %uint_0 %uint_12 - %474 = OpExtInst %void %472 Kernel %27 %473 %uint_7 - %476 = OpExtInst %void %472 ArgumentInfo %475 - %477 = OpExtInst %void %472 ArgumentStorageBuffer %474 %uint_0 %uint_0 %uint_0 %476 - %479 = OpExtInst %void %472 ArgumentInfo %478 - %480 = OpExtInst %void %472 ArgumentStorageBuffer %474 %uint_1 %uint_0 %uint_1 %479 - %482 = OpExtInst %void %472 ArgumentInfo %481 - %483 = OpExtInst %void %472 ArgumentStorageBuffer %474 %uint_2 %uint_0 %uint_2 %482 - %485 = OpExtInst %void %472 ArgumentInfo %484 - %486 = OpExtInst %void %472 ArgumentStorageBuffer %474 %uint_3 %uint_0 %uint_3 %485 - %488 = OpExtInst %void %472 ArgumentInfo %487 - %489 = OpExtInst %void %472 ArgumentStorageBuffer %474 %uint_4 %uint_0 %uint_4 %488 - %491 = OpExtInst %void %472 ArgumentInfo %490 - %492 = OpExtInst %void %472 ArgumentStorageBuffer %474 %uint_5 %uint_0 %uint_5 %491 - %494 = OpExtInst %void %472 ArgumentInfo %493 - %495 = OpExtInst %void %472 ArgumentStorageBuffer %474 %uint_6 %uint_0 %uint_6 %494 - %498 = OpExtInst %void %472 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/isa2-rel-data-addr.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/isa2-rel-data-addr.spv.dis deleted file mode 100644 index d46e2c5955..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/isa2-rel-data-addr.spv.dis +++ /dev/null @@ -1,551 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 500 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %473 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %27 "litmus_test" %gl_LocalInvocationID %gl_WorkGroupID - OpSource OpenCL_C 200 - %474 = OpString "litmus_test" - %476 = OpString "test_locations" - %479 = OpString "read_results" - %482 = OpString "shuffled_workgroups" - %485 = OpString "barrier" - %488 = OpString "scratchpad" - %491 = OpString "scratch_locations" - %494 = OpString "stress_params" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_16 0 Offset 0 - OpDecorate %_struct_16 Block - OpDecorate %18 DescriptorSet 0 - OpDecorate %18 Binding 0 - OpDecorate %19 DescriptorSet 0 - OpDecorate %19 Binding 1 - OpDecorate %20 DescriptorSet 0 - OpDecorate %20 Binding 2 - OpDecorate %21 DescriptorSet 0 - OpDecorate %21 Binding 3 - OpDecorate %22 DescriptorSet 0 - OpDecorate %22 Binding 4 - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 5 - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 6 - OpDecorate %6 SpecId 0 - OpDecorate %7 SpecId 1 - OpDecorate %8 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 - %6 = OpSpecConstant %uint 1 - %7 = OpSpecConstant %uint 1 - %8 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %6 %7 %8 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_16 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_16 = OpTypePointer StorageBuffer %_struct_16 - %void = OpTypeVoid - %26 = OpTypeFunction %void -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint - %uint_9 = OpConstant %uint 9 - %bool = OpTypeBool - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 - %uint_100 = OpConstant %uint 100 - %uint_7 = OpConstant %uint 7 -%uint_4294967295 = OpConstant %uint 4294967295 - %uint_10 = OpConstant %uint 10 - %uint_8 = OpConstant %uint 8 - %uint_11 = OpConstant %uint 11 - %uint_4 = OpConstant %uint 4 - %uint_5 = OpConstant %uint 5 - %uint_6 = OpConstant %uint 6 - %uint_64 = OpConstant %uint 64 - %uint_1023 = OpConstant %uint 1023 - %false = OpConstantFalse %bool - %uint_68 = OpConstant %uint 68 - %true = OpConstantTrue %bool - %472 = OpUndef %uint - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant - %11 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input -%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input - %18 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %19 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %20 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %21 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %22 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %27 = OpFunction %void None %26 - %28 = OpLabel - %31 = OpAccessChain %_ptr_StorageBuffer_uint %21 %uint_0 %uint_0 - %32 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_0 - %34 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %35 = OpLoad %uint %34 - %37 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %38 = OpLoad %uint %37 - %39 = OpIAdd %uint %38 %35 - %40 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_0 %39 - %41 = OpLoad %uint %40 - %43 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_9 - %44 = OpLoad %uint %43 - %46 = OpUGreaterThanEqual %bool %41 %44 - OpSelectionMerge %203 None - OpBranchConditional %46 %49 %203 - %49 = OpLabel - %51 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_1 - %52 = OpLoad %uint %51 - %53 = OpINotEqual %bool %52 %uint_0 - OpSelectionMerge %201 None - OpBranchConditional %53 %56 %201 - %56 = OpLabel - %58 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_2 - %59 = OpLoad %uint %58 - %61 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_3 - %62 = OpLoad %uint %61 - %63 = OpINotEqual %bool %59 %uint_0 - OpSelectionMerge %199 None - OpBranchConditional %63 %66 %199 - %66 = OpLabel - %67 = OpPhi %uint %194 %193 %uint_0 %56 - OpLoopMerge %197 %193 None - OpBranch %70 - %70 = OpLabel - %71 = OpSGreaterThanEqual %bool %62 %uint_2 - OpSelectionMerge %124 None - OpBranchConditional %71 %74 %124 - %74 = OpLabel - %75 = OpSGreaterThanEqual %bool %62 %uint_3 - OpSelectionMerge %98 None - OpBranchConditional %75 %78 %98 - %78 = OpLabel - %79 = OpIEqual %bool %62 %uint_3 - OpSelectionMerge %95 None - OpBranchConditional %79 %82 %95 - %82 = OpLabel - %83 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %84 = OpLoad %uint %83 - %85 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %86 = OpLoad %uint %85 - %87 = OpIAdd %uint %86 %84 - %88 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %87 - %89 = OpLoad %uint %88 - %90 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %89 - %91 = OpLoad %uint %90 - %93 = OpULessThanEqual %bool %91 %uint_100 - OpBranch %95 - %95 = OpLabel - %96 = OpPhi %bool %93 %82 %true %78 - OpBranch %98 - %98 = OpLabel - %99 = OpPhi %bool %96 %95 %false %74 - %100 = OpPhi %bool %false %95 %true %74 - OpSelectionMerge %121 None - OpBranchConditional %100 %103 %121 - %103 = OpLabel - %104 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %105 = OpLoad %uint %104 - %106 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %107 = OpLoad %uint %106 - %108 = OpIAdd %uint %107 %105 - %109 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %108 - %110 = OpLoad %uint %109 - %111 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %110 - %112 = OpLoad %uint %111 - %113 = OpULessThanEqual %bool %112 %uint_100 - OpSelectionMerge %118 None - OpBranchConditional %113 %116 %118 - %116 = OpLabel - OpStore %111 %67 - OpBranch %118 - %118 = OpLabel - %119 = OpPhi %bool %true %116 %99 %103 - OpBranch %121 - %121 = OpLabel - %122 = OpPhi %bool %119 %118 %99 %98 - OpBranch %124 - %124 = OpLabel - %125 = OpPhi %bool %122 %121 %false %70 - %126 = OpPhi %bool %false %121 %true %70 - OpSelectionMerge %186 None - OpBranchConditional %126 %129 %186 - %129 = OpLabel - %130 = OpSGreaterThanEqual %bool %62 %uint_1 - OpSelectionMerge %153 None - OpBranchConditional %130 %133 %153 - %133 = OpLabel - %134 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %135 = OpLoad %uint %134 - %136 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %137 = OpLoad %uint %136 - %138 = OpIAdd %uint %137 %135 - %139 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %138 - %140 = OpLoad %uint %139 - %141 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %140 - OpStore %141 %67 - %142 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %143 = OpLoad %uint %142 - %144 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %145 = OpLoad %uint %144 - %146 = OpIAdd %uint %145 %143 - %147 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %146 - %148 = OpLoad %uint %147 - %149 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %148 - %150 = OpLoad %uint %149 - %151 = OpULessThanEqual %bool %150 %uint_100 - OpBranch %153 - %153 = OpLabel - %154 = OpPhi %bool %151 %133 %125 %129 - %155 = OpPhi %bool %false %133 %true %129 - OpSelectionMerge %183 None - OpBranchConditional %155 %158 %183 - %158 = OpLabel - %159 = OpIEqual %bool %62 %uint_0 - OpSelectionMerge %181 None - OpBranchConditional %159 %162 %181 - %162 = OpLabel - %163 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %164 = OpLoad %uint %163 - %165 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %166 = OpLoad %uint %165 - %167 = OpIAdd %uint %166 %164 - %168 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %167 - %169 = OpLoad %uint %168 - %170 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %169 - OpStore %170 %67 - %171 = OpIAdd %uint %67 %uint_1 - %172 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %173 = OpLoad %uint %172 - %174 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %175 = OpLoad %uint %174 - %176 = OpIAdd %uint %175 %173 - %177 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %176 - %178 = OpLoad %uint %177 - %179 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %178 - OpStore %179 %171 - OpBranch %181 - %181 = OpLabel - OpBranch %183 - %183 = OpLabel - %184 = OpPhi %bool %true %181 %154 %153 - OpBranch %186 - %186 = OpLabel - %187 = OpPhi %bool %184 %183 %125 %124 - OpBranchConditional %187 %189 %193 - %189 = OpLabel - %190 = OpIAdd %uint %67 %uint_1 - %191 = OpUGreaterThanEqual %bool %190 %59 - OpBranch %193 - %193 = OpLabel - %194 = OpPhi %uint %190 %189 %472 %186 - %195 = OpPhi %bool %191 %189 %true %186 - OpBranchConditional %195 %197 %66 - %197 = OpLabel - OpBranch %199 - %199 = OpLabel - OpBranch %201 - %201 = OpLabel - OpBranch %203 - %203 = OpLabel - %204 = OpPhi %bool %false %201 %true %28 - OpSelectionMerge %468 None - OpBranchConditional %204 %207 %468 - %207 = OpLabel - %208 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %209 = OpCompositeExtract %uint %208 0 - %210 = OpIMul %uint %209 %44 - %211 = OpIMul %uint %209 %41 - %212 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %213 = OpLoad %uint %212 - %214 = OpIAdd %uint %211 %213 - %216 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_7 - %217 = OpLoad %uint %216 - %218 = OpIMul %uint %217 %213 - %219 = OpUMod %uint %218 %209 - %220 = OpIAdd %uint %219 %211 - %221 = OpIAdd %uint %41 %uint_1 - %223 = OpIAdd %uint %44 %uint_4294967295 - %224 = OpUMod %uint %213 %223 - %225 = OpIAdd %uint %221 %224 - %226 = OpUMod %uint %225 %44 - %227 = OpIMul %uint %226 %209 - %228 = OpIAdd %uint %227 %219 - %230 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %231 = OpLoad %uint %230 - %232 = OpIMul %uint %231 %uint_3 - %233 = OpIMul %uint %232 %214 - %235 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_8 - %236 = OpLoad %uint %235 - %237 = OpIMul %uint %236 %214 - %238 = OpUMod %uint %237 %210 - %239 = OpIMul %uint %232 %238 - %241 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_11 - %242 = OpLoad %uint %241 - %243 = OpIAdd %uint %239 %242 - %244 = OpIMul %uint %236 %220 - %245 = OpUMod %uint %244 %210 - %246 = OpIMul %uint %232 %245 - %247 = OpIAdd %uint %246 %242 - %248 = OpIMul %uint %245 %236 - %249 = OpUMod %uint %248 %210 - %250 = OpIMul %uint %232 %249 - %251 = OpShiftLeftLogical %uint %242 %uint_1 - %252 = OpIAdd %uint %250 %251 - %253 = OpIMul %uint %232 %228 - %254 = OpIMul %uint %228 %236 - %255 = OpUMod %uint %254 %210 - %256 = OpIMul %uint %255 %236 - %257 = OpUMod %uint %256 %210 - %258 = OpIMul %uint %232 %257 - %259 = OpIAdd %uint %258 %251 - %261 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_4 - %262 = OpLoad %uint %261 - %263 = OpINotEqual %bool %262 %uint_0 - OpSelectionMerge %410 None - OpBranchConditional %263 %266 %410 - %266 = OpLabel - %268 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_5 - %269 = OpLoad %uint %268 - %271 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_6 - %272 = OpLoad %uint %271 - %273 = OpINotEqual %bool %269 %uint_0 - OpSelectionMerge %408 None - OpBranchConditional %273 %276 %408 - %276 = OpLabel - %277 = OpPhi %uint %403 %402 %uint_0 %266 - OpLoopMerge %406 %402 None - OpBranch %280 - %280 = OpLabel - %281 = OpSGreaterThanEqual %bool %272 %uint_2 - OpSelectionMerge %333 None - OpBranchConditional %281 %284 %333 - %284 = OpLabel - %285 = OpSGreaterThanEqual %bool %272 %uint_3 - OpSelectionMerge %307 None - OpBranchConditional %285 %288 %307 - %288 = OpLabel - %289 = OpIEqual %bool %272 %uint_3 - OpSelectionMerge %304 None - OpBranchConditional %289 %292 %304 - %292 = OpLabel - %293 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %294 = OpLoad %uint %293 - %295 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %296 = OpLoad %uint %295 - %297 = OpIAdd %uint %296 %294 - %298 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %297 - %299 = OpLoad %uint %298 - %300 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %299 - %301 = OpLoad %uint %300 - %302 = OpULessThanEqual %bool %301 %uint_100 - OpBranch %304 - %304 = OpLabel - %305 = OpPhi %bool %302 %292 %true %288 - OpBranch %307 - %307 = OpLabel - %308 = OpPhi %bool %305 %304 %false %284 - %309 = OpPhi %bool %false %304 %true %284 - OpSelectionMerge %330 None - OpBranchConditional %309 %312 %330 - %312 = OpLabel - %313 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %314 = OpLoad %uint %313 - %315 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %316 = OpLoad %uint %315 - %317 = OpIAdd %uint %316 %314 - %318 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %317 - %319 = OpLoad %uint %318 - %320 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %319 - %321 = OpLoad %uint %320 - %322 = OpULessThanEqual %bool %321 %uint_100 - OpSelectionMerge %327 None - OpBranchConditional %322 %325 %327 - %325 = OpLabel - OpStore %320 %277 - OpBranch %327 - %327 = OpLabel - %328 = OpPhi %bool %true %325 %308 %312 - OpBranch %330 - %330 = OpLabel - %331 = OpPhi %bool %328 %327 %308 %307 - OpBranch %333 - %333 = OpLabel - %334 = OpPhi %bool %331 %330 %false %280 - %335 = OpPhi %bool %false %330 %true %280 - OpSelectionMerge %395 None - OpBranchConditional %335 %338 %395 - %338 = OpLabel - %339 = OpSGreaterThanEqual %bool %272 %uint_1 - OpSelectionMerge %362 None - OpBranchConditional %339 %342 %362 - %342 = OpLabel - %343 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %344 = OpLoad %uint %343 - %345 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %346 = OpLoad %uint %345 - %347 = OpIAdd %uint %346 %344 - %348 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %347 - %349 = OpLoad %uint %348 - %350 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %349 - OpStore %350 %277 - %351 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %352 = OpLoad %uint %351 - %353 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %354 = OpLoad %uint %353 - %355 = OpIAdd %uint %354 %352 - %356 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %355 - %357 = OpLoad %uint %356 - %358 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %357 - %359 = OpLoad %uint %358 - %360 = OpULessThanEqual %bool %359 %uint_100 - OpBranch %362 - %362 = OpLabel - %363 = OpPhi %bool %360 %342 %334 %338 - %364 = OpPhi %bool %false %342 %true %338 - OpSelectionMerge %392 None - OpBranchConditional %364 %367 %392 - %367 = OpLabel - %368 = OpIEqual %bool %272 %uint_0 - OpSelectionMerge %390 None - OpBranchConditional %368 %371 %390 - %371 = OpLabel - %372 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %373 = OpLoad %uint %372 - %374 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %375 = OpLoad %uint %374 - %376 = OpIAdd %uint %375 %373 - %377 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %376 - %378 = OpLoad %uint %377 - %379 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %378 - OpStore %379 %277 - %380 = OpIAdd %uint %277 %uint_1 - %381 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %382 = OpLoad %uint %381 - %383 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %384 = OpLoad %uint %383 - %385 = OpIAdd %uint %384 %382 - %386 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %385 - %387 = OpLoad %uint %386 - %388 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %387 - OpStore %388 %380 - OpBranch %390 - %390 = OpLabel - OpBranch %392 - %392 = OpLabel - %393 = OpPhi %bool %true %390 %363 %362 - OpBranch %395 - %395 = OpLabel - %396 = OpPhi %bool %393 %392 %334 %333 - OpBranchConditional %396 %398 %402 - %398 = OpLabel - %399 = OpIAdd %uint %277 %uint_1 - %400 = OpUGreaterThanEqual %bool %399 %269 - OpBranch %402 - %402 = OpLabel - %403 = OpPhi %uint %399 %398 %472 %395 - %404 = OpPhi %bool %400 %398 %true %395 - OpBranchConditional %404 %406 %276 - %406 = OpLabel - OpBranch %408 - %408 = OpLabel - OpBranch %410 - %410 = OpLabel - %411 = OpLoad %uint %32 - %412 = OpINotEqual %bool %411 %uint_0 - OpSelectionMerge %441 None - OpBranchConditional %412 %415 %441 - %415 = OpLabel - %416 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %417 = OpCompositeExtract %uint %416 0 - %418 = OpLoad %uint %43 - %419 = OpIMul %uint %417 %418 - %421 = OpAtomicIAdd %uint %31 %uint_1 %uint_64 %uint_1 - %422 = OpULessThan %bool %421 %419 - OpSelectionMerge %439 None - OpBranchConditional %422 %425 %439 - %425 = OpLabel - %426 = OpPhi %uint %428 %425 %uint_0 %415 - %427 = OpAtomicLoad %uint %31 %uint_1 %uint_64 - %428 = OpIAdd %uint %426 %uint_1 - %430 = OpULessThan %bool %426 %uint_1023 - %431 = OpULessThan %bool %427 %419 - %433 = OpSelect %bool %430 %431 %false - %434 = OpLogicalNot %bool %433 - OpLoopMerge %437 %425 None - OpBranchConditional %434 %437 %425 - %437 = OpLabel - OpBranch %439 - %439 = OpLabel - OpBranch %441 - %441 = OpLabel - %442 = OpINotEqual %bool %213 %219 - OpSelectionMerge %466 None - OpBranchConditional %442 %445 %466 - %445 = OpLabel - %446 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %233 - OpAtomicStore %446 %uint_1 %uint_64 %uint_1 - %447 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %243 - OpAtomicStore %447 %uint_1 %uint_68 %uint_1 - %449 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %247 - %450 = OpAtomicLoad %uint %449 %uint_1 %uint_64 - %451 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %252 - OpAtomicStore %451 %uint_1 %uint_64 %450 - %452 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %259 - %453 = OpAtomicLoad %uint %452 %uint_1 %uint_64 - %454 = OpShiftRightLogical %uint %453 %uint_1 - %455 = OpIAdd %uint %454 %253 - %456 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %455 - %457 = OpAtomicLoad %uint %456 %uint_1 %uint_64 - %458 = OpIMul %uint %220 %uint_3 - %459 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %458 - OpAtomicStore %459 %uint_1 %uint_68 %450 - %460 = OpIMul %uint %228 %uint_3 - %461 = OpIAdd %uint %460 %uint_1 - %462 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %461 - OpAtomicStore %462 %uint_1 %uint_68 %453 - %463 = OpIAdd %uint %460 %uint_2 - %464 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %463 - OpAtomicStore %464 %uint_1 %uint_68 %457 - OpBranch %466 - %466 = OpLabel - OpBranch %468 - %468 = OpLabel - OpBranch %470 - %470 = OpLabel - OpReturn - OpFunctionEnd - %498 = OpExtInst %void %473 PushConstantRegionGroupOffset %uint_0 %uint_12 - %475 = OpExtInst %void %473 Kernel %27 %474 %uint_7 - %477 = OpExtInst %void %473 ArgumentInfo %476 - %478 = OpExtInst %void %473 ArgumentStorageBuffer %475 %uint_0 %uint_0 %uint_0 %477 - %480 = OpExtInst %void %473 ArgumentInfo %479 - %481 = OpExtInst %void %473 ArgumentStorageBuffer %475 %uint_1 %uint_0 %uint_1 %480 - %483 = OpExtInst %void %473 ArgumentInfo %482 - %484 = OpExtInst %void %473 ArgumentStorageBuffer %475 %uint_2 %uint_0 %uint_2 %483 - %486 = OpExtInst %void %473 ArgumentInfo %485 - %487 = OpExtInst %void %473 ArgumentStorageBuffer %475 %uint_3 %uint_0 %uint_3 %486 - %489 = OpExtInst %void %473 ArgumentInfo %488 - %490 = OpExtInst %void %473 ArgumentStorageBuffer %475 %uint_4 %uint_0 %uint_4 %489 - %492 = OpExtInst %void %473 ArgumentInfo %491 - %493 = OpExtInst %void %473 ArgumentStorageBuffer %475 %uint_5 %uint_0 %uint_5 %492 - %495 = OpExtInst %void %473 ArgumentInfo %494 - %496 = OpExtInst %void %473 ArgumentStorageBuffer %475 %uint_6 %uint_0 %uint_6 %495 - %499 = OpExtInst %void %473 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/isa2-results.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/isa2-results.spv.dis deleted file mode 100644 index 3b14eba996..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/isa2-results.spv.dis +++ /dev/null @@ -1,223 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 183 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %165 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %27 "litmus_test" %gl_GlobalInvocationID - OpSource OpenCL_C 200 - %166 = OpString "litmus_test" - %168 = OpString "test_locations" - %171 = OpString "read_results" - %174 = OpString "test_results" - %177 = OpString "stress_params" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_15 0 Offset 0 - OpDecorate %_struct_15 Block - OpMemberDecorate %_struct_19 0 Offset 0 - OpMemberDecorate %_struct_19 1 Offset 4 - OpMemberDecorate %_struct_19 2 Offset 8 - OpMemberDecorate %_struct_19 3 Offset 12 - OpMemberDecorate %_struct_19 4 Offset 16 - OpMemberDecorate %_struct_19 5 Offset 20 - OpMemberDecorate %_struct_19 6 Offset 24 - OpDecorate %_runtimearr__struct_19 ArrayStride 28 - OpMemberDecorate %_struct_21 0 Offset 0 - OpDecorate %_struct_21 Block - OpDecorate %17 DescriptorSet 0 - OpDecorate %17 Binding 0 - OpDecorate %18 DescriptorSet 0 - OpDecorate %18 Binding 1 - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 2 - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 3 - OpDecorate %8 SpecId 0 - OpDecorate %9 SpecId 1 - OpDecorate %10 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint - %8 = OpSpecConstant %uint 1 - %9 = OpSpecConstant %uint 1 - %10 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %8 %9 %10 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_15 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_15 = OpTypePointer StorageBuffer %_struct_15 - %_struct_19 = OpTypeStruct %uint %uint %uint %uint %uint %uint %uint -%_runtimearr__struct_19 = OpTypeRuntimeArray %_struct_19 - %_struct_21 = OpTypeStruct %_runtimearr__struct_19 -%_ptr_StorageBuffer__struct_21 = OpTypePointer StorageBuffer %_struct_21 - %void = OpTypeVoid - %26 = OpTypeFunction %void -%_ptr_Input_uint = OpTypePointer Input %uint - %uint_0 = OpConstant %uint 0 -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_10 = OpConstant %uint 10 - %uint_3 = OpConstant %uint 3 - %uint_1 = OpConstant %uint 1 - %uint_66 = OpConstant %uint 66 - %uint_2 = OpConstant %uint 2 - %bool = OpTypeBool - %false = OpConstantFalse %bool - %uint_6 = OpConstant %uint 6 - %uint_72 = OpConstant %uint 72 - %uint_5 = OpConstant %uint 5 - %uint_4 = OpConstant %uint 4 - %true = OpConstantTrue %bool - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input - %13 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize - %17 = OpVariable %_ptr_StorageBuffer__struct_15 StorageBuffer - %18 = OpVariable %_ptr_StorageBuffer__struct_15 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_21 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_15 StorageBuffer - %27 = OpFunction %void None %26 - %28 = OpLabel - %31 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %32 = OpLoad %uint %31 - %34 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %35 = OpLoad %uint %34 - %36 = OpIAdd %uint %35 %32 - %39 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %40 = OpLoad %uint %39 - %42 = OpIMul %uint %36 %uint_3 - %43 = OpIMul %uint %42 %40 - %44 = OpAccessChain %_ptr_StorageBuffer_uint %17 %uint_0 %43 - %47 = OpAtomicLoad %uint %44 %uint_1 %uint_66 - %48 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %42 - %49 = OpAtomicLoad %uint %48 %uint_1 %uint_66 - %50 = OpIAdd %uint %42 %uint_1 - %51 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %50 - %52 = OpAtomicLoad %uint %51 %uint_1 %uint_66 - %54 = OpIAdd %uint %42 %uint_2 - %55 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %54 - %56 = OpAtomicLoad %uint %55 %uint_1 %uint_66 - %58 = OpIEqual %bool %49 %uint_1 - %59 = OpIEqual %bool %52 %uint_1 - %61 = OpSelect %bool %58 %59 %false - %62 = OpIEqual %bool %56 %uint_1 - %63 = OpSelect %bool %61 %62 %false - %64 = OpLogicalNot %bool %63 - OpSelectionMerge %155 None - OpBranchConditional %64 %67 %155 - %67 = OpLabel - %68 = OpIEqual %bool %49 %uint_0 - %69 = OpIEqual %bool %52 %uint_0 - %70 = OpSelect %bool %68 %69 %false - %71 = OpIEqual %bool %56 %uint_0 - %72 = OpSelect %bool %70 %71 %false - %73 = OpLogicalNot %bool %72 - OpSelectionMerge %145 None - OpBranchConditional %73 %76 %145 - %76 = OpLabel - %77 = OpSelect %bool %70 %62 %false - %78 = OpLogicalNot %bool %77 - OpSelectionMerge %135 None - OpBranchConditional %78 %81 %135 - %81 = OpLabel - %82 = OpSelect %bool %58 %69 %false - %83 = OpSelect %bool %82 %71 %false - %84 = OpLogicalNot %bool %83 - OpSelectionMerge %125 None - OpBranchConditional %84 %87 %125 - %87 = OpLabel - %88 = OpSelect %bool %82 %62 %false - %89 = OpLogicalNot %bool %88 - OpSelectionMerge %114 None - OpBranchConditional %89 %92 %114 - %92 = OpLabel - %93 = OpSelect %bool %61 %71 %false - %94 = OpLogicalNot %bool %93 - OpSelectionMerge %103 None - OpBranchConditional %94 %97 %103 - %97 = OpLabel - %99 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_6 - %101 = OpAtomicIAdd %uint %99 %uint_1 %uint_72 %uint_1 - OpBranch %103 - %103 = OpLabel - %104 = OpPhi %bool %false %97 %true %92 - OpSelectionMerge %112 None - OpBranchConditional %104 %107 %112 - %107 = OpLabel - %109 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_5 - %110 = OpAtomicIAdd %uint %109 %uint_1 %uint_72 %uint_1 - OpBranch %112 - %112 = OpLabel - OpBranch %114 - %114 = OpLabel - %115 = OpPhi %bool %false %112 %true %87 - OpSelectionMerge %123 None - OpBranchConditional %115 %118 %123 - %118 = OpLabel - %120 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_4 - %121 = OpAtomicIAdd %uint %120 %uint_1 %uint_72 %uint_1 - OpBranch %123 - %123 = OpLabel - OpBranch %125 - %125 = OpLabel - %126 = OpPhi %bool %false %123 %true %81 - OpSelectionMerge %133 None - OpBranchConditional %126 %129 %133 - %129 = OpLabel - %130 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_3 - %131 = OpAtomicIAdd %uint %130 %uint_1 %uint_72 %uint_1 - OpBranch %133 - %133 = OpLabel - OpBranch %135 - %135 = OpLabel - %136 = OpPhi %bool %false %133 %true %76 - OpSelectionMerge %143 None - OpBranchConditional %136 %139 %143 - %139 = OpLabel - %140 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_2 - %141 = OpAtomicIAdd %uint %140 %uint_1 %uint_72 %uint_1 - OpBranch %143 - %143 = OpLabel - OpBranch %145 - %145 = OpLabel - %146 = OpPhi %bool %false %143 %true %67 - OpSelectionMerge %153 None - OpBranchConditional %146 %149 %153 - %149 = OpLabel - %150 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_1 - %151 = OpAtomicIAdd %uint %150 %uint_1 %uint_72 %uint_1 - OpBranch %153 - %153 = OpLabel - OpBranch %155 - %155 = OpLabel - %156 = OpPhi %bool %false %153 %true %28 - OpSelectionMerge %163 None - OpBranchConditional %156 %159 %163 - %159 = OpLabel - %160 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_0 - %161 = OpAtomicIAdd %uint %160 %uint_1 %uint_72 %uint_1 - OpBranch %163 - %163 = OpLabel - OpReturn - OpFunctionEnd - %181 = OpExtInst %void %165 PushConstantRegionOffset %uint_0 %uint_12 - %167 = OpExtInst %void %165 Kernel %27 %166 %uint_4 - %169 = OpExtInst %void %165 ArgumentInfo %168 - %170 = OpExtInst %void %165 ArgumentStorageBuffer %167 %uint_0 %uint_0 %uint_0 %169 - %172 = OpExtInst %void %165 ArgumentInfo %171 - %173 = OpExtInst %void %165 ArgumentStorageBuffer %167 %uint_1 %uint_0 %uint_1 %172 - %175 = OpExtInst %void %165 ArgumentInfo %174 - %176 = OpExtInst %void %165 ArgumentStorageBuffer %167 %uint_2 %uint_0 %uint_2 %175 - %178 = OpExtInst %void %165 ArgumentInfo %177 - %179 = OpExtInst %void %165 ArgumentStorageBuffer %167 %uint_3 %uint_0 %uint_3 %178 - %182 = OpExtInst %void %165 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/isa2.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/isa2.spv.dis deleted file mode 100644 index 86389593bc..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/isa2.spv.dis +++ /dev/null @@ -1,549 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 498 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %471 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %27 "litmus_test" %gl_LocalInvocationID %gl_WorkGroupID - OpSource OpenCL_C 200 - %472 = OpString "litmus_test" - %474 = OpString "test_locations" - %477 = OpString "read_results" - %480 = OpString "shuffled_workgroups" - %483 = OpString "barrier" - %486 = OpString "scratchpad" - %489 = OpString "scratch_locations" - %492 = OpString "stress_params" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_16 0 Offset 0 - OpDecorate %_struct_16 Block - OpDecorate %18 DescriptorSet 0 - OpDecorate %18 Binding 0 - OpDecorate %19 DescriptorSet 0 - OpDecorate %19 Binding 1 - OpDecorate %20 DescriptorSet 0 - OpDecorate %20 Binding 2 - OpDecorate %21 DescriptorSet 0 - OpDecorate %21 Binding 3 - OpDecorate %22 DescriptorSet 0 - OpDecorate %22 Binding 4 - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 5 - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 6 - OpDecorate %6 SpecId 0 - OpDecorate %7 SpecId 1 - OpDecorate %8 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 - %6 = OpSpecConstant %uint 1 - %7 = OpSpecConstant %uint 1 - %8 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %6 %7 %8 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_16 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_16 = OpTypePointer StorageBuffer %_struct_16 - %void = OpTypeVoid - %26 = OpTypeFunction %void -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint - %uint_9 = OpConstant %uint 9 - %bool = OpTypeBool - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 - %uint_100 = OpConstant %uint 100 - %uint_7 = OpConstant %uint 7 -%uint_4294967295 = OpConstant %uint 4294967295 - %uint_10 = OpConstant %uint 10 - %uint_8 = OpConstant %uint 8 - %uint_11 = OpConstant %uint 11 - %uint_4 = OpConstant %uint 4 - %uint_5 = OpConstant %uint 5 - %uint_6 = OpConstant %uint 6 - %uint_64 = OpConstant %uint 64 - %uint_1023 = OpConstant %uint 1023 - %false = OpConstantFalse %bool - %uint_68 = OpConstant %uint 68 - %true = OpConstantTrue %bool - %470 = OpUndef %uint - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant - %11 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input -%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input - %18 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %19 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %20 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %21 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %22 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %27 = OpFunction %void None %26 - %28 = OpLabel - %31 = OpAccessChain %_ptr_StorageBuffer_uint %21 %uint_0 %uint_0 - %32 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_0 - %34 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %35 = OpLoad %uint %34 - %37 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %38 = OpLoad %uint %37 - %39 = OpIAdd %uint %38 %35 - %40 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_0 %39 - %41 = OpLoad %uint %40 - %43 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_9 - %44 = OpLoad %uint %43 - %46 = OpUGreaterThanEqual %bool %41 %44 - OpSelectionMerge %203 None - OpBranchConditional %46 %49 %203 - %49 = OpLabel - %51 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_1 - %52 = OpLoad %uint %51 - %53 = OpINotEqual %bool %52 %uint_0 - OpSelectionMerge %201 None - OpBranchConditional %53 %56 %201 - %56 = OpLabel - %58 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_2 - %59 = OpLoad %uint %58 - %61 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_3 - %62 = OpLoad %uint %61 - %63 = OpINotEqual %bool %59 %uint_0 - OpSelectionMerge %199 None - OpBranchConditional %63 %66 %199 - %66 = OpLabel - %67 = OpPhi %uint %194 %193 %uint_0 %56 - OpLoopMerge %197 %193 None - OpBranch %70 - %70 = OpLabel - %71 = OpSGreaterThanEqual %bool %62 %uint_2 - OpSelectionMerge %124 None - OpBranchConditional %71 %74 %124 - %74 = OpLabel - %75 = OpSGreaterThanEqual %bool %62 %uint_3 - OpSelectionMerge %98 None - OpBranchConditional %75 %78 %98 - %78 = OpLabel - %79 = OpIEqual %bool %62 %uint_3 - OpSelectionMerge %95 None - OpBranchConditional %79 %82 %95 - %82 = OpLabel - %83 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %84 = OpLoad %uint %83 - %85 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %86 = OpLoad %uint %85 - %87 = OpIAdd %uint %86 %84 - %88 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %87 - %89 = OpLoad %uint %88 - %90 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %89 - %91 = OpLoad %uint %90 - %93 = OpULessThanEqual %bool %91 %uint_100 - OpBranch %95 - %95 = OpLabel - %96 = OpPhi %bool %93 %82 %true %78 - OpBranch %98 - %98 = OpLabel - %99 = OpPhi %bool %96 %95 %false %74 - %100 = OpPhi %bool %false %95 %true %74 - OpSelectionMerge %121 None - OpBranchConditional %100 %103 %121 - %103 = OpLabel - %104 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %105 = OpLoad %uint %104 - %106 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %107 = OpLoad %uint %106 - %108 = OpIAdd %uint %107 %105 - %109 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %108 - %110 = OpLoad %uint %109 - %111 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %110 - %112 = OpLoad %uint %111 - %113 = OpULessThanEqual %bool %112 %uint_100 - OpSelectionMerge %118 None - OpBranchConditional %113 %116 %118 - %116 = OpLabel - OpStore %111 %67 - OpBranch %118 - %118 = OpLabel - %119 = OpPhi %bool %true %116 %99 %103 - OpBranch %121 - %121 = OpLabel - %122 = OpPhi %bool %119 %118 %99 %98 - OpBranch %124 - %124 = OpLabel - %125 = OpPhi %bool %122 %121 %false %70 - %126 = OpPhi %bool %false %121 %true %70 - OpSelectionMerge %186 None - OpBranchConditional %126 %129 %186 - %129 = OpLabel - %130 = OpSGreaterThanEqual %bool %62 %uint_1 - OpSelectionMerge %153 None - OpBranchConditional %130 %133 %153 - %133 = OpLabel - %134 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %135 = OpLoad %uint %134 - %136 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %137 = OpLoad %uint %136 - %138 = OpIAdd %uint %137 %135 - %139 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %138 - %140 = OpLoad %uint %139 - %141 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %140 - OpStore %141 %67 - %142 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %143 = OpLoad %uint %142 - %144 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %145 = OpLoad %uint %144 - %146 = OpIAdd %uint %145 %143 - %147 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %146 - %148 = OpLoad %uint %147 - %149 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %148 - %150 = OpLoad %uint %149 - %151 = OpULessThanEqual %bool %150 %uint_100 - OpBranch %153 - %153 = OpLabel - %154 = OpPhi %bool %151 %133 %125 %129 - %155 = OpPhi %bool %false %133 %true %129 - OpSelectionMerge %183 None - OpBranchConditional %155 %158 %183 - %158 = OpLabel - %159 = OpIEqual %bool %62 %uint_0 - OpSelectionMerge %181 None - OpBranchConditional %159 %162 %181 - %162 = OpLabel - %163 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %164 = OpLoad %uint %163 - %165 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %166 = OpLoad %uint %165 - %167 = OpIAdd %uint %166 %164 - %168 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %167 - %169 = OpLoad %uint %168 - %170 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %169 - OpStore %170 %67 - %171 = OpIAdd %uint %67 %uint_1 - %172 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %173 = OpLoad %uint %172 - %174 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %175 = OpLoad %uint %174 - %176 = OpIAdd %uint %175 %173 - %177 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %176 - %178 = OpLoad %uint %177 - %179 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %178 - OpStore %179 %171 - OpBranch %181 - %181 = OpLabel - OpBranch %183 - %183 = OpLabel - %184 = OpPhi %bool %true %181 %154 %153 - OpBranch %186 - %186 = OpLabel - %187 = OpPhi %bool %184 %183 %125 %124 - OpBranchConditional %187 %189 %193 - %189 = OpLabel - %190 = OpIAdd %uint %67 %uint_1 - %191 = OpUGreaterThanEqual %bool %190 %59 - OpBranch %193 - %193 = OpLabel - %194 = OpPhi %uint %190 %189 %470 %186 - %195 = OpPhi %bool %191 %189 %true %186 - OpBranchConditional %195 %197 %66 - %197 = OpLabel - OpBranch %199 - %199 = OpLabel - OpBranch %201 - %201 = OpLabel - OpBranch %203 - %203 = OpLabel - %204 = OpPhi %bool %false %201 %true %28 - OpSelectionMerge %466 None - OpBranchConditional %204 %207 %466 - %207 = OpLabel - %208 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %209 = OpCompositeExtract %uint %208 0 - %210 = OpIMul %uint %209 %44 - %211 = OpIMul %uint %209 %41 - %212 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %213 = OpLoad %uint %212 - %214 = OpIAdd %uint %211 %213 - %216 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_7 - %217 = OpLoad %uint %216 - %218 = OpIMul %uint %217 %213 - %219 = OpUMod %uint %218 %209 - %220 = OpIAdd %uint %219 %211 - %221 = OpIAdd %uint %41 %uint_1 - %223 = OpIAdd %uint %44 %uint_4294967295 - %224 = OpUMod %uint %213 %223 - %225 = OpIAdd %uint %221 %224 - %226 = OpUMod %uint %225 %44 - %227 = OpIMul %uint %226 %209 - %228 = OpIAdd %uint %227 %219 - %230 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %231 = OpLoad %uint %230 - %232 = OpIMul %uint %231 %uint_3 - %233 = OpIMul %uint %232 %214 - %235 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_8 - %236 = OpLoad %uint %235 - %237 = OpIMul %uint %236 %214 - %238 = OpUMod %uint %237 %210 - %239 = OpIMul %uint %232 %238 - %241 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_11 - %242 = OpLoad %uint %241 - %243 = OpIAdd %uint %239 %242 - %244 = OpIMul %uint %236 %220 - %245 = OpUMod %uint %244 %210 - %246 = OpIMul %uint %232 %245 - %247 = OpIAdd %uint %246 %242 - %248 = OpIMul %uint %245 %236 - %249 = OpUMod %uint %248 %210 - %250 = OpIMul %uint %232 %249 - %251 = OpShiftLeftLogical %uint %242 %uint_1 - %252 = OpIAdd %uint %250 %251 - %253 = OpIMul %uint %232 %228 - %254 = OpIMul %uint %228 %236 - %255 = OpUMod %uint %254 %210 - %256 = OpIMul %uint %255 %236 - %257 = OpUMod %uint %256 %210 - %258 = OpIMul %uint %232 %257 - %259 = OpIAdd %uint %258 %251 - %261 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_4 - %262 = OpLoad %uint %261 - %263 = OpINotEqual %bool %262 %uint_0 - OpSelectionMerge %410 None - OpBranchConditional %263 %266 %410 - %266 = OpLabel - %268 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_5 - %269 = OpLoad %uint %268 - %271 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_6 - %272 = OpLoad %uint %271 - %273 = OpINotEqual %bool %269 %uint_0 - OpSelectionMerge %408 None - OpBranchConditional %273 %276 %408 - %276 = OpLabel - %277 = OpPhi %uint %403 %402 %uint_0 %266 - OpLoopMerge %406 %402 None - OpBranch %280 - %280 = OpLabel - %281 = OpSGreaterThanEqual %bool %272 %uint_2 - OpSelectionMerge %333 None - OpBranchConditional %281 %284 %333 - %284 = OpLabel - %285 = OpSGreaterThanEqual %bool %272 %uint_3 - OpSelectionMerge %307 None - OpBranchConditional %285 %288 %307 - %288 = OpLabel - %289 = OpIEqual %bool %272 %uint_3 - OpSelectionMerge %304 None - OpBranchConditional %289 %292 %304 - %292 = OpLabel - %293 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %294 = OpLoad %uint %293 - %295 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %296 = OpLoad %uint %295 - %297 = OpIAdd %uint %296 %294 - %298 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %297 - %299 = OpLoad %uint %298 - %300 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %299 - %301 = OpLoad %uint %300 - %302 = OpULessThanEqual %bool %301 %uint_100 - OpBranch %304 - %304 = OpLabel - %305 = OpPhi %bool %302 %292 %true %288 - OpBranch %307 - %307 = OpLabel - %308 = OpPhi %bool %305 %304 %false %284 - %309 = OpPhi %bool %false %304 %true %284 - OpSelectionMerge %330 None - OpBranchConditional %309 %312 %330 - %312 = OpLabel - %313 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %314 = OpLoad %uint %313 - %315 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %316 = OpLoad %uint %315 - %317 = OpIAdd %uint %316 %314 - %318 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %317 - %319 = OpLoad %uint %318 - %320 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %319 - %321 = OpLoad %uint %320 - %322 = OpULessThanEqual %bool %321 %uint_100 - OpSelectionMerge %327 None - OpBranchConditional %322 %325 %327 - %325 = OpLabel - OpStore %320 %277 - OpBranch %327 - %327 = OpLabel - %328 = OpPhi %bool %true %325 %308 %312 - OpBranch %330 - %330 = OpLabel - %331 = OpPhi %bool %328 %327 %308 %307 - OpBranch %333 - %333 = OpLabel - %334 = OpPhi %bool %331 %330 %false %280 - %335 = OpPhi %bool %false %330 %true %280 - OpSelectionMerge %395 None - OpBranchConditional %335 %338 %395 - %338 = OpLabel - %339 = OpSGreaterThanEqual %bool %272 %uint_1 - OpSelectionMerge %362 None - OpBranchConditional %339 %342 %362 - %342 = OpLabel - %343 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %344 = OpLoad %uint %343 - %345 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %346 = OpLoad %uint %345 - %347 = OpIAdd %uint %346 %344 - %348 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %347 - %349 = OpLoad %uint %348 - %350 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %349 - OpStore %350 %277 - %351 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %352 = OpLoad %uint %351 - %353 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %354 = OpLoad %uint %353 - %355 = OpIAdd %uint %354 %352 - %356 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %355 - %357 = OpLoad %uint %356 - %358 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %357 - %359 = OpLoad %uint %358 - %360 = OpULessThanEqual %bool %359 %uint_100 - OpBranch %362 - %362 = OpLabel - %363 = OpPhi %bool %360 %342 %334 %338 - %364 = OpPhi %bool %false %342 %true %338 - OpSelectionMerge %392 None - OpBranchConditional %364 %367 %392 - %367 = OpLabel - %368 = OpIEqual %bool %272 %uint_0 - OpSelectionMerge %390 None - OpBranchConditional %368 %371 %390 - %371 = OpLabel - %372 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %373 = OpLoad %uint %372 - %374 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %375 = OpLoad %uint %374 - %376 = OpIAdd %uint %375 %373 - %377 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %376 - %378 = OpLoad %uint %377 - %379 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %378 - OpStore %379 %277 - %380 = OpIAdd %uint %277 %uint_1 - %381 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %382 = OpLoad %uint %381 - %383 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %384 = OpLoad %uint %383 - %385 = OpIAdd %uint %384 %382 - %386 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %385 - %387 = OpLoad %uint %386 - %388 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %387 - OpStore %388 %380 - OpBranch %390 - %390 = OpLabel - OpBranch %392 - %392 = OpLabel - %393 = OpPhi %bool %true %390 %363 %362 - OpBranch %395 - %395 = OpLabel - %396 = OpPhi %bool %393 %392 %334 %333 - OpBranchConditional %396 %398 %402 - %398 = OpLabel - %399 = OpIAdd %uint %277 %uint_1 - %400 = OpUGreaterThanEqual %bool %399 %269 - OpBranch %402 - %402 = OpLabel - %403 = OpPhi %uint %399 %398 %470 %395 - %404 = OpPhi %bool %400 %398 %true %395 - OpBranchConditional %404 %406 %276 - %406 = OpLabel - OpBranch %408 - %408 = OpLabel - OpBranch %410 - %410 = OpLabel - %411 = OpLoad %uint %32 - %412 = OpINotEqual %bool %411 %uint_0 - OpSelectionMerge %441 None - OpBranchConditional %412 %415 %441 - %415 = OpLabel - %416 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %417 = OpCompositeExtract %uint %416 0 - %418 = OpLoad %uint %43 - %419 = OpIMul %uint %417 %418 - %421 = OpAtomicIAdd %uint %31 %uint_1 %uint_64 %uint_1 - %422 = OpULessThan %bool %421 %419 - OpSelectionMerge %439 None - OpBranchConditional %422 %425 %439 - %425 = OpLabel - %426 = OpPhi %uint %428 %425 %uint_0 %415 - %427 = OpAtomicLoad %uint %31 %uint_1 %uint_64 - %428 = OpIAdd %uint %426 %uint_1 - %430 = OpULessThan %bool %426 %uint_1023 - %431 = OpULessThan %bool %427 %419 - %433 = OpSelect %bool %430 %431 %false - %434 = OpLogicalNot %bool %433 - OpLoopMerge %437 %425 None - OpBranchConditional %434 %437 %425 - %437 = OpLabel - OpBranch %439 - %439 = OpLabel - OpBranch %441 - %441 = OpLabel - %442 = OpINotEqual %bool %213 %219 - OpSelectionMerge %464 None - OpBranchConditional %442 %445 %464 - %445 = OpLabel - %446 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %233 - OpAtomicStore %446 %uint_1 %uint_64 %uint_1 - %447 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %243 - OpAtomicStore %447 %uint_1 %uint_64 %uint_1 - %448 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %247 - %449 = OpAtomicLoad %uint %448 %uint_1 %uint_64 - %450 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %252 - OpAtomicStore %450 %uint_1 %uint_64 %449 - %451 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %259 - %452 = OpAtomicLoad %uint %451 %uint_1 %uint_64 - %453 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %253 - %454 = OpAtomicLoad %uint %453 %uint_1 %uint_64 - %455 = OpIMul %uint %220 %uint_3 - %456 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %455 - OpAtomicStore %456 %uint_1 %uint_68 %449 - %458 = OpIMul %uint %228 %uint_3 - %459 = OpIAdd %uint %458 %uint_1 - %460 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %459 - OpAtomicStore %460 %uint_1 %uint_68 %452 - %461 = OpIAdd %uint %458 %uint_2 - %462 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %461 - OpAtomicStore %462 %uint_1 %uint_68 %454 - OpBranch %464 - %464 = OpLabel - OpBranch %466 - %466 = OpLabel - OpBranch %468 - %468 = OpLabel - OpReturn - OpFunctionEnd - %496 = OpExtInst %void %471 PushConstantRegionGroupOffset %uint_0 %uint_12 - %473 = OpExtInst %void %471 Kernel %27 %472 %uint_7 - %475 = OpExtInst %void %471 ArgumentInfo %474 - %476 = OpExtInst %void %471 ArgumentStorageBuffer %473 %uint_0 %uint_0 %uint_0 %475 - %478 = OpExtInst %void %471 ArgumentInfo %477 - %479 = OpExtInst %void %471 ArgumentStorageBuffer %473 %uint_1 %uint_0 %uint_1 %478 - %481 = OpExtInst %void %471 ArgumentInfo %480 - %482 = OpExtInst %void %471 ArgumentStorageBuffer %473 %uint_2 %uint_0 %uint_2 %481 - %484 = OpExtInst %void %471 ArgumentInfo %483 - %485 = OpExtInst %void %471 ArgumentStorageBuffer %473 %uint_3 %uint_0 %uint_3 %484 - %487 = OpExtInst %void %471 ArgumentInfo %486 - %488 = OpExtInst %void %471 ArgumentStorageBuffer %473 %uint_4 %uint_0 %uint_4 %487 - %490 = OpExtInst %void %471 ArgumentInfo %489 - %491 = OpExtInst %void %471 ArgumentStorageBuffer %473 %uint_5 %uint_0 %uint_5 %490 - %493 = OpExtInst %void %471 ArgumentInfo %492 - %494 = OpExtInst %void %471 ArgumentStorageBuffer %473 %uint_6 %uint_0 %uint_6 %493 - %497 = OpExtInst %void %471 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/load-buffer-acq-rel.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/load-buffer-acq-rel.spv.dis deleted file mode 100644 index ba23f3b965..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/load-buffer-acq-rel.spv.dis +++ /dev/null @@ -1,525 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 476 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %449 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %27 "litmus_test" %gl_LocalInvocationID %gl_WorkGroupID - OpSource OpenCL_C 200 - %450 = OpString "litmus_test" - %452 = OpString "test_locations" - %455 = OpString "read_results" - %458 = OpString "shuffled_workgroups" - %461 = OpString "barrier" - %464 = OpString "scratchpad" - %467 = OpString "scratch_locations" - %470 = OpString "stress_params" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_16 0 Offset 0 - OpDecorate %_struct_16 Block - OpDecorate %18 DescriptorSet 0 - OpDecorate %18 Binding 0 - OpDecorate %19 DescriptorSet 0 - OpDecorate %19 Binding 1 - OpDecorate %20 DescriptorSet 0 - OpDecorate %20 Binding 2 - OpDecorate %21 DescriptorSet 0 - OpDecorate %21 Binding 3 - OpDecorate %22 DescriptorSet 0 - OpDecorate %22 Binding 4 - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 5 - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 6 - OpDecorate %6 SpecId 0 - OpDecorate %7 SpecId 1 - OpDecorate %8 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 - %6 = OpSpecConstant %uint 1 - %7 = OpSpecConstant %uint 1 - %8 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %6 %7 %8 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_16 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_16 = OpTypePointer StorageBuffer %_struct_16 - %void = OpTypeVoid - %26 = OpTypeFunction %void -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint - %uint_9 = OpConstant %uint 9 - %bool = OpTypeBool - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 - %uint_100 = OpConstant %uint 100 -%uint_4294967295 = OpConstant %uint 4294967295 - %uint_7 = OpConstant %uint 7 - %uint_10 = OpConstant %uint 10 - %uint_8 = OpConstant %uint 8 - %uint_11 = OpConstant %uint 11 - %uint_4 = OpConstant %uint 4 - %uint_5 = OpConstant %uint 5 - %uint_6 = OpConstant %uint 6 - %uint_64 = OpConstant %uint 64 - %uint_1023 = OpConstant %uint 1023 - %false = OpConstantFalse %bool - %uint_68 = OpConstant %uint 68 - %uint_66 = OpConstant %uint 66 - %true = OpConstantTrue %bool - %448 = OpUndef %uint - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant - %11 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input -%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input - %18 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %19 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %20 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %21 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %22 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %27 = OpFunction %void None %26 - %28 = OpLabel - %31 = OpAccessChain %_ptr_StorageBuffer_uint %21 %uint_0 %uint_0 - %32 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_0 - %34 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %35 = OpLoad %uint %34 - %37 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %38 = OpLoad %uint %37 - %39 = OpIAdd %uint %38 %35 - %40 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_0 %39 - %41 = OpLoad %uint %40 - %43 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_9 - %44 = OpLoad %uint %43 - %46 = OpUGreaterThanEqual %bool %41 %44 - OpSelectionMerge %203 None - OpBranchConditional %46 %49 %203 - %49 = OpLabel - %51 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_1 - %52 = OpLoad %uint %51 - %53 = OpINotEqual %bool %52 %uint_0 - OpSelectionMerge %201 None - OpBranchConditional %53 %56 %201 - %56 = OpLabel - %58 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_2 - %59 = OpLoad %uint %58 - %61 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_3 - %62 = OpLoad %uint %61 - %63 = OpINotEqual %bool %59 %uint_0 - OpSelectionMerge %199 None - OpBranchConditional %63 %66 %199 - %66 = OpLabel - %67 = OpPhi %uint %194 %193 %uint_0 %56 - OpLoopMerge %197 %193 None - OpBranch %70 - %70 = OpLabel - %71 = OpSGreaterThanEqual %bool %62 %uint_2 - OpSelectionMerge %124 None - OpBranchConditional %71 %74 %124 - %74 = OpLabel - %75 = OpSGreaterThanEqual %bool %62 %uint_3 - OpSelectionMerge %98 None - OpBranchConditional %75 %78 %98 - %78 = OpLabel - %79 = OpIEqual %bool %62 %uint_3 - OpSelectionMerge %95 None - OpBranchConditional %79 %82 %95 - %82 = OpLabel - %83 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %84 = OpLoad %uint %83 - %85 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %86 = OpLoad %uint %85 - %87 = OpIAdd %uint %86 %84 - %88 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %87 - %89 = OpLoad %uint %88 - %90 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %89 - %91 = OpLoad %uint %90 - %93 = OpULessThanEqual %bool %91 %uint_100 - OpBranch %95 - %95 = OpLabel - %96 = OpPhi %bool %93 %82 %true %78 - OpBranch %98 - %98 = OpLabel - %99 = OpPhi %bool %96 %95 %false %74 - %100 = OpPhi %bool %false %95 %true %74 - OpSelectionMerge %121 None - OpBranchConditional %100 %103 %121 - %103 = OpLabel - %104 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %105 = OpLoad %uint %104 - %106 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %107 = OpLoad %uint %106 - %108 = OpIAdd %uint %107 %105 - %109 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %108 - %110 = OpLoad %uint %109 - %111 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %110 - %112 = OpLoad %uint %111 - %113 = OpULessThanEqual %bool %112 %uint_100 - OpSelectionMerge %118 None - OpBranchConditional %113 %116 %118 - %116 = OpLabel - OpStore %111 %67 - OpBranch %118 - %118 = OpLabel - %119 = OpPhi %bool %true %116 %99 %103 - OpBranch %121 - %121 = OpLabel - %122 = OpPhi %bool %119 %118 %99 %98 - OpBranch %124 - %124 = OpLabel - %125 = OpPhi %bool %122 %121 %false %70 - %126 = OpPhi %bool %false %121 %true %70 - OpSelectionMerge %186 None - OpBranchConditional %126 %129 %186 - %129 = OpLabel - %130 = OpSGreaterThanEqual %bool %62 %uint_1 - OpSelectionMerge %153 None - OpBranchConditional %130 %133 %153 - %133 = OpLabel - %134 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %135 = OpLoad %uint %134 - %136 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %137 = OpLoad %uint %136 - %138 = OpIAdd %uint %137 %135 - %139 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %138 - %140 = OpLoad %uint %139 - %141 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %140 - OpStore %141 %67 - %142 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %143 = OpLoad %uint %142 - %144 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %145 = OpLoad %uint %144 - %146 = OpIAdd %uint %145 %143 - %147 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %146 - %148 = OpLoad %uint %147 - %149 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %148 - %150 = OpLoad %uint %149 - %151 = OpULessThanEqual %bool %150 %uint_100 - OpBranch %153 - %153 = OpLabel - %154 = OpPhi %bool %151 %133 %125 %129 - %155 = OpPhi %bool %false %133 %true %129 - OpSelectionMerge %183 None - OpBranchConditional %155 %158 %183 - %158 = OpLabel - %159 = OpIEqual %bool %62 %uint_0 - OpSelectionMerge %181 None - OpBranchConditional %159 %162 %181 - %162 = OpLabel - %163 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %164 = OpLoad %uint %163 - %165 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %166 = OpLoad %uint %165 - %167 = OpIAdd %uint %166 %164 - %168 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %167 - %169 = OpLoad %uint %168 - %170 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %169 - OpStore %170 %67 - %171 = OpIAdd %uint %67 %uint_1 - %172 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %173 = OpLoad %uint %172 - %174 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %175 = OpLoad %uint %174 - %176 = OpIAdd %uint %175 %173 - %177 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %176 - %178 = OpLoad %uint %177 - %179 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %178 - OpStore %179 %171 - OpBranch %181 - %181 = OpLabel - OpBranch %183 - %183 = OpLabel - %184 = OpPhi %bool %true %181 %154 %153 - OpBranch %186 - %186 = OpLabel - %187 = OpPhi %bool %184 %183 %125 %124 - OpBranchConditional %187 %189 %193 - %189 = OpLabel - %190 = OpIAdd %uint %67 %uint_1 - %191 = OpUGreaterThanEqual %bool %190 %59 - OpBranch %193 - %193 = OpLabel - %194 = OpPhi %uint %190 %189 %448 %186 - %195 = OpPhi %bool %191 %189 %true %186 - OpBranchConditional %195 %197 %66 - %197 = OpLabel - OpBranch %199 - %199 = OpLabel - OpBranch %201 - %201 = OpLabel - OpBranch %203 - %203 = OpLabel - %204 = OpPhi %bool %false %201 %true %28 - OpSelectionMerge %444 None - OpBranchConditional %204 %207 %444 - %207 = OpLabel - %208 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %209 = OpCompositeExtract %uint %208 0 - %210 = OpIMul %uint %209 %44 - %211 = OpIMul %uint %209 %41 - %212 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %213 = OpLoad %uint %212 - %214 = OpIAdd %uint %211 %213 - %215 = OpIAdd %uint %41 %uint_1 - %217 = OpIAdd %uint %44 %uint_4294967295 - %218 = OpUMod %uint %213 %217 - %219 = OpIAdd %uint %215 %218 - %220 = OpUMod %uint %219 %44 - %221 = OpIMul %uint %220 %209 - %223 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_7 - %224 = OpLoad %uint %223 - %225 = OpIMul %uint %224 %213 - %226 = OpUMod %uint %225 %209 - %227 = OpIAdd %uint %226 %221 - %229 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %230 = OpLoad %uint %229 - %231 = OpShiftLeftLogical %uint %214 %uint_1 - %232 = OpIMul %uint %231 %230 - %234 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_8 - %235 = OpLoad %uint %234 - %236 = OpIMul %uint %235 %214 - %237 = OpUMod %uint %236 %210 - %238 = OpShiftLeftLogical %uint %230 %uint_1 - %239 = OpIMul %uint %238 %237 - %241 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_11 - %242 = OpLoad %uint %241 - %243 = OpIAdd %uint %239 %242 - %244 = OpIMul %uint %238 %227 - %245 = OpIMul %uint %235 %227 - %246 = OpUMod %uint %245 %210 - %247 = OpIMul %uint %238 %246 - %248 = OpIAdd %uint %247 %242 - %250 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_4 - %251 = OpLoad %uint %250 - %252 = OpINotEqual %bool %251 %uint_0 - OpSelectionMerge %399 None - OpBranchConditional %252 %255 %399 - %255 = OpLabel - %257 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_5 - %258 = OpLoad %uint %257 - %260 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_6 - %261 = OpLoad %uint %260 - %262 = OpINotEqual %bool %258 %uint_0 - OpSelectionMerge %397 None - OpBranchConditional %262 %265 %397 - %265 = OpLabel - %266 = OpPhi %uint %392 %391 %uint_0 %255 - OpLoopMerge %395 %391 None - OpBranch %269 - %269 = OpLabel - %270 = OpSGreaterThanEqual %bool %261 %uint_2 - OpSelectionMerge %322 None - OpBranchConditional %270 %273 %322 - %273 = OpLabel - %274 = OpSGreaterThanEqual %bool %261 %uint_3 - OpSelectionMerge %296 None - OpBranchConditional %274 %277 %296 - %277 = OpLabel - %278 = OpIEqual %bool %261 %uint_3 - OpSelectionMerge %293 None - OpBranchConditional %278 %281 %293 - %281 = OpLabel - %282 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %283 = OpLoad %uint %282 - %284 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %285 = OpLoad %uint %284 - %286 = OpIAdd %uint %285 %283 - %287 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %286 - %288 = OpLoad %uint %287 - %289 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %288 - %290 = OpLoad %uint %289 - %291 = OpULessThanEqual %bool %290 %uint_100 - OpBranch %293 - %293 = OpLabel - %294 = OpPhi %bool %291 %281 %true %277 - OpBranch %296 - %296 = OpLabel - %297 = OpPhi %bool %294 %293 %false %273 - %298 = OpPhi %bool %false %293 %true %273 - OpSelectionMerge %319 None - OpBranchConditional %298 %301 %319 - %301 = OpLabel - %302 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %303 = OpLoad %uint %302 - %304 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %305 = OpLoad %uint %304 - %306 = OpIAdd %uint %305 %303 - %307 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %306 - %308 = OpLoad %uint %307 - %309 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %308 - %310 = OpLoad %uint %309 - %311 = OpULessThanEqual %bool %310 %uint_100 - OpSelectionMerge %316 None - OpBranchConditional %311 %314 %316 - %314 = OpLabel - OpStore %309 %266 - OpBranch %316 - %316 = OpLabel - %317 = OpPhi %bool %true %314 %297 %301 - OpBranch %319 - %319 = OpLabel - %320 = OpPhi %bool %317 %316 %297 %296 - OpBranch %322 - %322 = OpLabel - %323 = OpPhi %bool %320 %319 %false %269 - %324 = OpPhi %bool %false %319 %true %269 - OpSelectionMerge %384 None - OpBranchConditional %324 %327 %384 - %327 = OpLabel - %328 = OpSGreaterThanEqual %bool %261 %uint_1 - OpSelectionMerge %351 None - OpBranchConditional %328 %331 %351 - %331 = OpLabel - %332 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %333 = OpLoad %uint %332 - %334 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %335 = OpLoad %uint %334 - %336 = OpIAdd %uint %335 %333 - %337 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %336 - %338 = OpLoad %uint %337 - %339 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %338 - OpStore %339 %266 - %340 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %341 = OpLoad %uint %340 - %342 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %343 = OpLoad %uint %342 - %344 = OpIAdd %uint %343 %341 - %345 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %344 - %346 = OpLoad %uint %345 - %347 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %346 - %348 = OpLoad %uint %347 - %349 = OpULessThanEqual %bool %348 %uint_100 - OpBranch %351 - %351 = OpLabel - %352 = OpPhi %bool %349 %331 %323 %327 - %353 = OpPhi %bool %false %331 %true %327 - OpSelectionMerge %381 None - OpBranchConditional %353 %356 %381 - %356 = OpLabel - %357 = OpIEqual %bool %261 %uint_0 - OpSelectionMerge %379 None - OpBranchConditional %357 %360 %379 - %360 = OpLabel - %361 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %362 = OpLoad %uint %361 - %363 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %364 = OpLoad %uint %363 - %365 = OpIAdd %uint %364 %362 - %366 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %365 - %367 = OpLoad %uint %366 - %368 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %367 - OpStore %368 %266 - %369 = OpIAdd %uint %266 %uint_1 - %370 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %371 = OpLoad %uint %370 - %372 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %373 = OpLoad %uint %372 - %374 = OpIAdd %uint %373 %371 - %375 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %374 - %376 = OpLoad %uint %375 - %377 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %376 - OpStore %377 %369 - OpBranch %379 - %379 = OpLabel - OpBranch %381 - %381 = OpLabel - %382 = OpPhi %bool %true %379 %352 %351 - OpBranch %384 - %384 = OpLabel - %385 = OpPhi %bool %382 %381 %323 %322 - OpBranchConditional %385 %387 %391 - %387 = OpLabel - %388 = OpIAdd %uint %266 %uint_1 - %389 = OpUGreaterThanEqual %bool %388 %258 - OpBranch %391 - %391 = OpLabel - %392 = OpPhi %uint %388 %387 %448 %384 - %393 = OpPhi %bool %389 %387 %true %384 - OpBranchConditional %393 %395 %265 - %395 = OpLabel - OpBranch %397 - %397 = OpLabel - OpBranch %399 - %399 = OpLabel - %400 = OpLoad %uint %32 - %401 = OpINotEqual %bool %400 %uint_0 - OpSelectionMerge %430 None - OpBranchConditional %401 %404 %430 - %404 = OpLabel - %405 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %406 = OpCompositeExtract %uint %405 0 - %407 = OpLoad %uint %43 - %408 = OpIMul %uint %406 %407 - %410 = OpAtomicIAdd %uint %31 %uint_1 %uint_64 %uint_1 - %411 = OpULessThan %bool %410 %408 - OpSelectionMerge %428 None - OpBranchConditional %411 %414 %428 - %414 = OpLabel - %415 = OpPhi %uint %417 %414 %uint_0 %404 - %416 = OpAtomicLoad %uint %31 %uint_1 %uint_64 - %417 = OpIAdd %uint %415 %uint_1 - %419 = OpULessThan %bool %415 %uint_1023 - %420 = OpULessThan %bool %416 %408 - %422 = OpSelect %bool %419 %420 %false - %423 = OpLogicalNot %bool %422 - OpLoopMerge %426 %414 None - OpBranchConditional %423 %426 %414 - %426 = OpLabel - OpBranch %428 - %428 = OpLabel - OpBranch %430 - %430 = OpLabel - %431 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %243 - %432 = OpAtomicLoad %uint %431 %uint_1 %uint_64 - %433 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %232 - OpAtomicStore %433 %uint_1 %uint_68 %uint_1 - %435 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %244 - %437 = OpAtomicLoad %uint %435 %uint_1 %uint_66 - %438 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %248 - OpAtomicStore %438 %uint_1 %uint_64 %uint_1 - %439 = OpShiftLeftLogical %uint %227 %uint_1 - %440 = OpBitwiseOr %uint %439 %uint_1 - %441 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %440 - OpAtomicStore %441 %uint_1 %uint_68 %437 - %442 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %231 - OpAtomicStore %442 %uint_1 %uint_68 %432 - OpBranch %444 - %444 = OpLabel - OpBranch %446 - %446 = OpLabel - OpReturn - OpFunctionEnd - %474 = OpExtInst %void %449 PushConstantRegionGroupOffset %uint_0 %uint_12 - %451 = OpExtInst %void %449 Kernel %27 %450 %uint_7 - %453 = OpExtInst %void %449 ArgumentInfo %452 - %454 = OpExtInst %void %449 ArgumentStorageBuffer %451 %uint_0 %uint_0 %uint_0 %453 - %456 = OpExtInst %void %449 ArgumentInfo %455 - %457 = OpExtInst %void %449 ArgumentStorageBuffer %451 %uint_1 %uint_0 %uint_1 %456 - %459 = OpExtInst %void %449 ArgumentInfo %458 - %460 = OpExtInst %void %449 ArgumentStorageBuffer %451 %uint_2 %uint_0 %uint_2 %459 - %462 = OpExtInst %void %449 ArgumentInfo %461 - %463 = OpExtInst %void %449 ArgumentStorageBuffer %451 %uint_3 %uint_0 %uint_3 %462 - %465 = OpExtInst %void %449 ArgumentInfo %464 - %466 = OpExtInst %void %449 ArgumentStorageBuffer %451 %uint_4 %uint_0 %uint_4 %465 - %468 = OpExtInst %void %449 ArgumentInfo %467 - %469 = OpExtInst %void %449 ArgumentStorageBuffer %451 %uint_5 %uint_0 %uint_5 %468 - %471 = OpExtInst %void %449 ArgumentInfo %470 - %472 = OpExtInst %void %449 ArgumentStorageBuffer %451 %uint_6 %uint_0 %uint_6 %471 - %475 = OpExtInst %void %449 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/load-buffer-cond.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/load-buffer-cond.spv.dis deleted file mode 100644 index 55a1a47edf..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/load-buffer-cond.spv.dis +++ /dev/null @@ -1,537 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 488 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %461 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %27 "litmus_test" %gl_LocalInvocationID %gl_WorkGroupID - OpSource OpenCL_C 200 - %462 = OpString "litmus_test" - %464 = OpString "test_locations" - %467 = OpString "read_results" - %470 = OpString "shuffled_workgroups" - %473 = OpString "barrier" - %476 = OpString "scratchpad" - %479 = OpString "scratch_locations" - %482 = OpString "stress_params" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_16 0 Offset 0 - OpDecorate %_struct_16 Block - OpDecorate %18 DescriptorSet 0 - OpDecorate %18 Binding 0 - OpDecorate %19 DescriptorSet 0 - OpDecorate %19 Binding 1 - OpDecorate %20 DescriptorSet 0 - OpDecorate %20 Binding 2 - OpDecorate %21 DescriptorSet 0 - OpDecorate %21 Binding 3 - OpDecorate %22 DescriptorSet 0 - OpDecorate %22 Binding 4 - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 5 - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 6 - OpDecorate %6 SpecId 0 - OpDecorate %7 SpecId 1 - OpDecorate %8 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 - %6 = OpSpecConstant %uint 1 - %7 = OpSpecConstant %uint 1 - %8 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %6 %7 %8 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_16 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_16 = OpTypePointer StorageBuffer %_struct_16 - %void = OpTypeVoid - %26 = OpTypeFunction %void -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint - %uint_9 = OpConstant %uint 9 - %bool = OpTypeBool - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 - %uint_100 = OpConstant %uint 100 -%uint_4294967295 = OpConstant %uint 4294967295 - %uint_7 = OpConstant %uint 7 - %uint_10 = OpConstant %uint 10 - %uint_8 = OpConstant %uint 8 - %uint_11 = OpConstant %uint 11 - %uint_4 = OpConstant %uint 4 - %uint_5 = OpConstant %uint 5 - %uint_6 = OpConstant %uint 6 - %uint_64 = OpConstant %uint 64 - %uint_1023 = OpConstant %uint 1023 - %false = OpConstantFalse %bool - %uint_68 = OpConstant %uint 68 - %uint_66 = OpConstant %uint 66 - %true = OpConstantTrue %bool - %460 = OpUndef %uint - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant - %11 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input -%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input - %18 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %19 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %20 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %21 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %22 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %27 = OpFunction %void None %26 - %28 = OpLabel - %31 = OpAccessChain %_ptr_StorageBuffer_uint %21 %uint_0 %uint_0 - %32 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_0 - %34 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %35 = OpLoad %uint %34 - %37 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %38 = OpLoad %uint %37 - %39 = OpIAdd %uint %38 %35 - %40 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_0 %39 - %41 = OpLoad %uint %40 - %43 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_9 - %44 = OpLoad %uint %43 - %46 = OpUGreaterThanEqual %bool %41 %44 - OpSelectionMerge %203 None - OpBranchConditional %46 %49 %203 - %49 = OpLabel - %51 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_1 - %52 = OpLoad %uint %51 - %53 = OpINotEqual %bool %52 %uint_0 - OpSelectionMerge %201 None - OpBranchConditional %53 %56 %201 - %56 = OpLabel - %58 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_2 - %59 = OpLoad %uint %58 - %61 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_3 - %62 = OpLoad %uint %61 - %63 = OpINotEqual %bool %59 %uint_0 - OpSelectionMerge %199 None - OpBranchConditional %63 %66 %199 - %66 = OpLabel - %67 = OpPhi %uint %194 %193 %uint_0 %56 - OpLoopMerge %197 %193 None - OpBranch %70 - %70 = OpLabel - %71 = OpSGreaterThanEqual %bool %62 %uint_2 - OpSelectionMerge %124 None - OpBranchConditional %71 %74 %124 - %74 = OpLabel - %75 = OpSGreaterThanEqual %bool %62 %uint_3 - OpSelectionMerge %98 None - OpBranchConditional %75 %78 %98 - %78 = OpLabel - %79 = OpIEqual %bool %62 %uint_3 - OpSelectionMerge %95 None - OpBranchConditional %79 %82 %95 - %82 = OpLabel - %83 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %84 = OpLoad %uint %83 - %85 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %86 = OpLoad %uint %85 - %87 = OpIAdd %uint %86 %84 - %88 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %87 - %89 = OpLoad %uint %88 - %90 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %89 - %91 = OpLoad %uint %90 - %93 = OpULessThanEqual %bool %91 %uint_100 - OpBranch %95 - %95 = OpLabel - %96 = OpPhi %bool %93 %82 %true %78 - OpBranch %98 - %98 = OpLabel - %99 = OpPhi %bool %96 %95 %false %74 - %100 = OpPhi %bool %false %95 %true %74 - OpSelectionMerge %121 None - OpBranchConditional %100 %103 %121 - %103 = OpLabel - %104 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %105 = OpLoad %uint %104 - %106 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %107 = OpLoad %uint %106 - %108 = OpIAdd %uint %107 %105 - %109 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %108 - %110 = OpLoad %uint %109 - %111 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %110 - %112 = OpLoad %uint %111 - %113 = OpULessThanEqual %bool %112 %uint_100 - OpSelectionMerge %118 None - OpBranchConditional %113 %116 %118 - %116 = OpLabel - OpStore %111 %67 - OpBranch %118 - %118 = OpLabel - %119 = OpPhi %bool %true %116 %99 %103 - OpBranch %121 - %121 = OpLabel - %122 = OpPhi %bool %119 %118 %99 %98 - OpBranch %124 - %124 = OpLabel - %125 = OpPhi %bool %122 %121 %false %70 - %126 = OpPhi %bool %false %121 %true %70 - OpSelectionMerge %186 None - OpBranchConditional %126 %129 %186 - %129 = OpLabel - %130 = OpSGreaterThanEqual %bool %62 %uint_1 - OpSelectionMerge %153 None - OpBranchConditional %130 %133 %153 - %133 = OpLabel - %134 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %135 = OpLoad %uint %134 - %136 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %137 = OpLoad %uint %136 - %138 = OpIAdd %uint %137 %135 - %139 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %138 - %140 = OpLoad %uint %139 - %141 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %140 - OpStore %141 %67 - %142 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %143 = OpLoad %uint %142 - %144 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %145 = OpLoad %uint %144 - %146 = OpIAdd %uint %145 %143 - %147 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %146 - %148 = OpLoad %uint %147 - %149 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %148 - %150 = OpLoad %uint %149 - %151 = OpULessThanEqual %bool %150 %uint_100 - OpBranch %153 - %153 = OpLabel - %154 = OpPhi %bool %151 %133 %125 %129 - %155 = OpPhi %bool %false %133 %true %129 - OpSelectionMerge %183 None - OpBranchConditional %155 %158 %183 - %158 = OpLabel - %159 = OpIEqual %bool %62 %uint_0 - OpSelectionMerge %181 None - OpBranchConditional %159 %162 %181 - %162 = OpLabel - %163 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %164 = OpLoad %uint %163 - %165 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %166 = OpLoad %uint %165 - %167 = OpIAdd %uint %166 %164 - %168 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %167 - %169 = OpLoad %uint %168 - %170 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %169 - OpStore %170 %67 - %171 = OpIAdd %uint %67 %uint_1 - %172 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %173 = OpLoad %uint %172 - %174 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %175 = OpLoad %uint %174 - %176 = OpIAdd %uint %175 %173 - %177 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %176 - %178 = OpLoad %uint %177 - %179 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %178 - OpStore %179 %171 - OpBranch %181 - %181 = OpLabel - OpBranch %183 - %183 = OpLabel - %184 = OpPhi %bool %true %181 %154 %153 - OpBranch %186 - %186 = OpLabel - %187 = OpPhi %bool %184 %183 %125 %124 - OpBranchConditional %187 %189 %193 - %189 = OpLabel - %190 = OpIAdd %uint %67 %uint_1 - %191 = OpUGreaterThanEqual %bool %190 %59 - OpBranch %193 - %193 = OpLabel - %194 = OpPhi %uint %190 %189 %460 %186 - %195 = OpPhi %bool %191 %189 %true %186 - OpBranchConditional %195 %197 %66 - %197 = OpLabel - OpBranch %199 - %199 = OpLabel - OpBranch %201 - %201 = OpLabel - OpBranch %203 - %203 = OpLabel - %204 = OpPhi %bool %false %201 %true %28 - OpSelectionMerge %456 None - OpBranchConditional %204 %207 %456 - %207 = OpLabel - %208 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %209 = OpCompositeExtract %uint %208 0 - %210 = OpIMul %uint %209 %44 - %211 = OpIMul %uint %209 %41 - %212 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %213 = OpLoad %uint %212 - %214 = OpIAdd %uint %211 %213 - %215 = OpIAdd %uint %41 %uint_1 - %217 = OpIAdd %uint %44 %uint_4294967295 - %218 = OpUMod %uint %213 %217 - %219 = OpIAdd %uint %215 %218 - %220 = OpUMod %uint %219 %44 - %221 = OpIMul %uint %220 %209 - %223 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_7 - %224 = OpLoad %uint %223 - %225 = OpIMul %uint %224 %213 - %226 = OpUMod %uint %225 %209 - %227 = OpIAdd %uint %226 %221 - %229 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %230 = OpLoad %uint %229 - %231 = OpShiftLeftLogical %uint %214 %uint_1 - %232 = OpIMul %uint %231 %230 - %234 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_8 - %235 = OpLoad %uint %234 - %236 = OpIMul %uint %235 %214 - %237 = OpUMod %uint %236 %210 - %238 = OpShiftLeftLogical %uint %230 %uint_1 - %239 = OpIMul %uint %238 %237 - %241 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_11 - %242 = OpLoad %uint %241 - %243 = OpIAdd %uint %239 %242 - %244 = OpIMul %uint %238 %227 - %245 = OpIMul %uint %235 %227 - %246 = OpUMod %uint %245 %210 - %247 = OpIMul %uint %238 %246 - %248 = OpIAdd %uint %247 %242 - %250 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_4 - %251 = OpLoad %uint %250 - %252 = OpINotEqual %bool %251 %uint_0 - OpSelectionMerge %399 None - OpBranchConditional %252 %255 %399 - %255 = OpLabel - %257 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_5 - %258 = OpLoad %uint %257 - %260 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_6 - %261 = OpLoad %uint %260 - %262 = OpINotEqual %bool %258 %uint_0 - OpSelectionMerge %397 None - OpBranchConditional %262 %265 %397 - %265 = OpLabel - %266 = OpPhi %uint %392 %391 %uint_0 %255 - OpLoopMerge %395 %391 None - OpBranch %269 - %269 = OpLabel - %270 = OpSGreaterThanEqual %bool %261 %uint_2 - OpSelectionMerge %322 None - OpBranchConditional %270 %273 %322 - %273 = OpLabel - %274 = OpSGreaterThanEqual %bool %261 %uint_3 - OpSelectionMerge %296 None - OpBranchConditional %274 %277 %296 - %277 = OpLabel - %278 = OpIEqual %bool %261 %uint_3 - OpSelectionMerge %293 None - OpBranchConditional %278 %281 %293 - %281 = OpLabel - %282 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %283 = OpLoad %uint %282 - %284 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %285 = OpLoad %uint %284 - %286 = OpIAdd %uint %285 %283 - %287 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %286 - %288 = OpLoad %uint %287 - %289 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %288 - %290 = OpLoad %uint %289 - %291 = OpULessThanEqual %bool %290 %uint_100 - OpBranch %293 - %293 = OpLabel - %294 = OpPhi %bool %291 %281 %true %277 - OpBranch %296 - %296 = OpLabel - %297 = OpPhi %bool %294 %293 %false %273 - %298 = OpPhi %bool %false %293 %true %273 - OpSelectionMerge %319 None - OpBranchConditional %298 %301 %319 - %301 = OpLabel - %302 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %303 = OpLoad %uint %302 - %304 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %305 = OpLoad %uint %304 - %306 = OpIAdd %uint %305 %303 - %307 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %306 - %308 = OpLoad %uint %307 - %309 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %308 - %310 = OpLoad %uint %309 - %311 = OpULessThanEqual %bool %310 %uint_100 - OpSelectionMerge %316 None - OpBranchConditional %311 %314 %316 - %314 = OpLabel - OpStore %309 %266 - OpBranch %316 - %316 = OpLabel - %317 = OpPhi %bool %true %314 %297 %301 - OpBranch %319 - %319 = OpLabel - %320 = OpPhi %bool %317 %316 %297 %296 - OpBranch %322 - %322 = OpLabel - %323 = OpPhi %bool %320 %319 %false %269 - %324 = OpPhi %bool %false %319 %true %269 - OpSelectionMerge %384 None - OpBranchConditional %324 %327 %384 - %327 = OpLabel - %328 = OpSGreaterThanEqual %bool %261 %uint_1 - OpSelectionMerge %351 None - OpBranchConditional %328 %331 %351 - %331 = OpLabel - %332 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %333 = OpLoad %uint %332 - %334 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %335 = OpLoad %uint %334 - %336 = OpIAdd %uint %335 %333 - %337 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %336 - %338 = OpLoad %uint %337 - %339 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %338 - OpStore %339 %266 - %340 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %341 = OpLoad %uint %340 - %342 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %343 = OpLoad %uint %342 - %344 = OpIAdd %uint %343 %341 - %345 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %344 - %346 = OpLoad %uint %345 - %347 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %346 - %348 = OpLoad %uint %347 - %349 = OpULessThanEqual %bool %348 %uint_100 - OpBranch %351 - %351 = OpLabel - %352 = OpPhi %bool %349 %331 %323 %327 - %353 = OpPhi %bool %false %331 %true %327 - OpSelectionMerge %381 None - OpBranchConditional %353 %356 %381 - %356 = OpLabel - %357 = OpIEqual %bool %261 %uint_0 - OpSelectionMerge %379 None - OpBranchConditional %357 %360 %379 - %360 = OpLabel - %361 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %362 = OpLoad %uint %361 - %363 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %364 = OpLoad %uint %363 - %365 = OpIAdd %uint %364 %362 - %366 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %365 - %367 = OpLoad %uint %366 - %368 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %367 - OpStore %368 %266 - %369 = OpIAdd %uint %266 %uint_1 - %370 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %371 = OpLoad %uint %370 - %372 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %373 = OpLoad %uint %372 - %374 = OpIAdd %uint %373 %371 - %375 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %374 - %376 = OpLoad %uint %375 - %377 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %376 - OpStore %377 %369 - OpBranch %379 - %379 = OpLabel - OpBranch %381 - %381 = OpLabel - %382 = OpPhi %bool %true %379 %352 %351 - OpBranch %384 - %384 = OpLabel - %385 = OpPhi %bool %382 %381 %323 %322 - OpBranchConditional %385 %387 %391 - %387 = OpLabel - %388 = OpIAdd %uint %266 %uint_1 - %389 = OpUGreaterThanEqual %bool %388 %258 - OpBranch %391 - %391 = OpLabel - %392 = OpPhi %uint %388 %387 %460 %384 - %393 = OpPhi %bool %389 %387 %true %384 - OpBranchConditional %393 %395 %265 - %395 = OpLabel - OpBranch %397 - %397 = OpLabel - OpBranch %399 - %399 = OpLabel - %400 = OpLoad %uint %32 - %401 = OpINotEqual %bool %400 %uint_0 - OpSelectionMerge %430 None - OpBranchConditional %401 %404 %430 - %404 = OpLabel - %405 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %406 = OpCompositeExtract %uint %405 0 - %407 = OpLoad %uint %43 - %408 = OpIMul %uint %406 %407 - %410 = OpAtomicIAdd %uint %31 %uint_1 %uint_64 %uint_1 - %411 = OpULessThan %bool %410 %408 - OpSelectionMerge %428 None - OpBranchConditional %411 %414 %428 - %414 = OpLabel - %415 = OpPhi %uint %417 %414 %uint_0 %404 - %416 = OpAtomicLoad %uint %31 %uint_1 %uint_64 - %417 = OpIAdd %uint %415 %uint_1 - %419 = OpULessThan %bool %415 %uint_1023 - %420 = OpULessThan %bool %416 %408 - %422 = OpSelect %bool %419 %420 %false - %423 = OpLogicalNot %bool %422 - OpLoopMerge %426 %414 None - OpBranchConditional %423 %426 %414 - %426 = OpLabel - OpBranch %428 - %428 = OpLabel - OpBranch %430 - %430 = OpLabel - %431 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %243 - %432 = OpAtomicLoad %uint %431 %uint_1 %uint_64 - %433 = OpIEqual %bool %432 %uint_1 - OpSelectionMerge %440 None - OpBranchConditional %433 %436 %440 - %436 = OpLabel - %437 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %232 - OpAtomicStore %437 %uint_1 %uint_68 %uint_1 - OpBranch %440 - %440 = OpLabel - %441 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %244 - %443 = OpAtomicLoad %uint %441 %uint_1 %uint_66 - %444 = OpIEqual %bool %443 %uint_1 - OpSelectionMerge %450 None - OpBranchConditional %444 %447 %450 - %447 = OpLabel - %448 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %248 - OpAtomicStore %448 %uint_1 %uint_64 %uint_1 - OpBranch %450 - %450 = OpLabel - %451 = OpShiftLeftLogical %uint %227 %uint_1 - %452 = OpBitwiseOr %uint %451 %uint_1 - %453 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %452 - OpAtomicStore %453 %uint_1 %uint_68 %443 - %454 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %231 - OpAtomicStore %454 %uint_1 %uint_68 %432 - OpBranch %456 - %456 = OpLabel - OpBranch %458 - %458 = OpLabel - OpReturn - OpFunctionEnd - %486 = OpExtInst %void %461 PushConstantRegionGroupOffset %uint_0 %uint_12 - %463 = OpExtInst %void %461 Kernel %27 %462 %uint_7 - %465 = OpExtInst %void %461 ArgumentInfo %464 - %466 = OpExtInst %void %461 ArgumentStorageBuffer %463 %uint_0 %uint_0 %uint_0 %465 - %468 = OpExtInst %void %461 ArgumentInfo %467 - %469 = OpExtInst %void %461 ArgumentStorageBuffer %463 %uint_1 %uint_0 %uint_1 %468 - %471 = OpExtInst %void %461 ArgumentInfo %470 - %472 = OpExtInst %void %461 ArgumentStorageBuffer %463 %uint_2 %uint_0 %uint_2 %471 - %474 = OpExtInst %void %461 ArgumentInfo %473 - %475 = OpExtInst %void %461 ArgumentStorageBuffer %463 %uint_3 %uint_0 %uint_3 %474 - %477 = OpExtInst %void %461 ArgumentInfo %476 - %478 = OpExtInst %void %461 ArgumentStorageBuffer %463 %uint_4 %uint_0 %uint_4 %477 - %480 = OpExtInst %void %461 ArgumentInfo %479 - %481 = OpExtInst %void %461 ArgumentStorageBuffer %463 %uint_5 %uint_0 %uint_5 %480 - %483 = OpExtInst %void %461 ArgumentInfo %482 - %484 = OpExtInst %void %461 ArgumentStorageBuffer %463 %uint_6 %uint_0 %uint_6 %483 - %487 = OpExtInst %void %461 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/load-buffer-results.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/load-buffer-results.spv.dis deleted file mode 100644 index 64d62fd18c..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/load-buffer-results.spv.dis +++ /dev/null @@ -1,192 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 155 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %136 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %27 "litmus_test" %gl_GlobalInvocationID - OpSource OpenCL_C 200 - %137 = OpString "litmus_test" - %140 = OpString "test_locations" - %143 = OpString "read_results" - %146 = OpString "test_results" - %149 = OpString "stress_params" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_15 0 Offset 0 - OpDecorate %_struct_15 Block - OpMemberDecorate %_struct_19 0 Offset 0 - OpMemberDecorate %_struct_19 1 Offset 4 - OpMemberDecorate %_struct_19 2 Offset 8 - OpMemberDecorate %_struct_19 3 Offset 12 - OpDecorate %_runtimearr__struct_19 ArrayStride 16 - OpMemberDecorate %_struct_21 0 Offset 0 - OpDecorate %_struct_21 Block - OpDecorate %17 DescriptorSet 0 - OpDecorate %17 Binding 0 - OpDecorate %18 DescriptorSet 0 - OpDecorate %18 Binding 1 - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 2 - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 3 - OpDecorate %8 SpecId 0 - OpDecorate %9 SpecId 1 - OpDecorate %10 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint - %8 = OpSpecConstant %uint 1 - %9 = OpSpecConstant %uint 1 - %10 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %8 %9 %10 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_15 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_15 = OpTypePointer StorageBuffer %_struct_15 - %_struct_19 = OpTypeStruct %uint %uint %uint %uint -%_runtimearr__struct_19 = OpTypeRuntimeArray %_struct_19 - %_struct_21 = OpTypeStruct %_runtimearr__struct_19 -%_ptr_StorageBuffer__struct_21 = OpTypePointer StorageBuffer %_struct_21 - %void = OpTypeVoid - %26 = OpTypeFunction %void -%_ptr_Input_uint = OpTypePointer Input %uint - %uint_0 = OpConstant %uint 0 -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_10 = OpConstant %uint 10 - %uint_1 = OpConstant %uint 1 - %uint_66 = OpConstant %uint 66 - %uint_9 = OpConstant %uint 9 - %uint_8 = OpConstant %uint 8 - %uint_11 = OpConstant %uint 11 - %bool = OpTypeBool - %false = OpConstantFalse %bool - %uint_3 = OpConstant %uint 3 - %uint_72 = OpConstant %uint 72 - %uint_2 = OpConstant %uint 2 - %true = OpConstantTrue %bool - %uint_4 = OpConstant %uint 4 - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input - %13 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize - %17 = OpVariable %_ptr_StorageBuffer__struct_15 StorageBuffer - %18 = OpVariable %_ptr_StorageBuffer__struct_15 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_21 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_15 StorageBuffer - %27 = OpFunction %void None %26 - %28 = OpLabel - %31 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %32 = OpLoad %uint %31 - %34 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %35 = OpLoad %uint %34 - %36 = OpIAdd %uint %35 %32 - %39 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %40 = OpLoad %uint %39 - %42 = OpShiftLeftLogical %uint %40 %uint_1 - %43 = OpIMul %uint %42 %36 - %44 = OpAccessChain %_ptr_StorageBuffer_uint %17 %uint_0 %43 - %46 = OpAtomicLoad %uint %44 %uint_1 %uint_66 - %47 = OpShiftLeftLogical %uint %36 %uint_1 - %48 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %47 - %49 = OpAtomicLoad %uint %48 %uint_1 %uint_66 - %50 = OpBitwiseOr %uint %47 %uint_1 - %51 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %50 - %52 = OpAtomicLoad %uint %51 %uint_1 %uint_66 - %53 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %54 = OpCompositeExtract %uint %53 0 - %56 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_9 - %57 = OpLoad %uint %56 - %58 = OpIMul %uint %54 %57 - %60 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_8 - %61 = OpLoad %uint %60 - %62 = OpIMul %uint %61 %36 - %63 = OpUMod %uint %62 %58 - %64 = OpLoad %uint %39 - %65 = OpShiftLeftLogical %uint %63 %uint_1 - %66 = OpIMul %uint %65 %64 - %68 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_11 - %69 = OpLoad %uint %68 - %70 = OpIAdd %uint %66 %69 - %71 = OpAccessChain %_ptr_StorageBuffer_uint %17 %uint_0 %70 - %72 = OpAtomicLoad %uint %71 %uint_1 %uint_66 - %74 = OpIEqual %bool %49 %uint_1 - %75 = OpIEqual %bool %52 %uint_0 - %77 = OpSelect %bool %74 %75 %false - %78 = OpLogicalNot %bool %77 - OpSelectionMerge %126 None - OpBranchConditional %78 %81 %126 - %81 = OpLabel - %82 = OpIEqual %bool %49 %uint_0 - %83 = OpIEqual %bool %52 %uint_1 - %84 = OpSelect %bool %82 %83 %false - %85 = OpLogicalNot %bool %84 - OpSelectionMerge %116 None - OpBranchConditional %85 %88 %116 - %88 = OpLabel - %89 = OpSelect %bool %82 %75 %false - %90 = OpLogicalNot %bool %89 - OpSelectionMerge %105 None - OpBranchConditional %90 %93 %105 - %93 = OpLabel - %94 = OpSelect %bool %74 %83 %false - OpSelectionMerge %103 None - OpBranchConditional %94 %97 %103 - %97 = OpLabel - %99 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_3 - %101 = OpAtomicIAdd %uint %99 %uint_1 %uint_72 %uint_1 - OpBranch %103 - %103 = OpLabel - OpBranch %105 - %105 = OpLabel - %106 = OpPhi %bool %false %103 %true %88 - OpSelectionMerge %114 None - OpBranchConditional %106 %109 %114 - %109 = OpLabel - %111 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_2 - %112 = OpAtomicIAdd %uint %111 %uint_1 %uint_72 %uint_1 - OpBranch %114 - %114 = OpLabel - OpBranch %116 - %116 = OpLabel - %117 = OpPhi %bool %false %114 %true %81 - OpSelectionMerge %124 None - OpBranchConditional %117 %120 %124 - %120 = OpLabel - %121 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_1 - %122 = OpAtomicIAdd %uint %121 %uint_1 %uint_72 %uint_1 - OpBranch %124 - %124 = OpLabel - OpBranch %126 - %126 = OpLabel - %127 = OpPhi %bool %false %124 %true %28 - OpSelectionMerge %134 None - OpBranchConditional %127 %130 %134 - %130 = OpLabel - %131 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_0 - %132 = OpAtomicIAdd %uint %131 %uint_1 %uint_72 %uint_1 - OpBranch %134 - %134 = OpLabel - OpReturn - OpFunctionEnd - %153 = OpExtInst %void %136 PushConstantRegionOffset %uint_0 %uint_12 - %139 = OpExtInst %void %136 Kernel %27 %137 %uint_4 - %141 = OpExtInst %void %136 ArgumentInfo %140 - %142 = OpExtInst %void %136 ArgumentStorageBuffer %139 %uint_0 %uint_0 %uint_0 %141 - %144 = OpExtInst %void %136 ArgumentInfo %143 - %145 = OpExtInst %void %136 ArgumentStorageBuffer %139 %uint_1 %uint_0 %uint_1 %144 - %147 = OpExtInst %void %136 ArgumentInfo %146 - %148 = OpExtInst %void %136 ArgumentStorageBuffer %139 %uint_2 %uint_0 %uint_2 %147 - %150 = OpExtInst %void %136 ArgumentInfo %149 - %151 = OpExtInst %void %136 ArgumentStorageBuffer %139 %uint_3 %uint_0 %uint_3 %150 - %154 = OpExtInst %void %136 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/load-buffer.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/load-buffer.spv.dis deleted file mode 100644 index 5a2f2f2edd..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/load-buffer.spv.dis +++ /dev/null @@ -1,524 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 475 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %448 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %27 "litmus_test" %gl_LocalInvocationID %gl_WorkGroupID - OpSource OpenCL_C 200 - %449 = OpString "litmus_test" - %451 = OpString "test_locations" - %454 = OpString "read_results" - %457 = OpString "shuffled_workgroups" - %460 = OpString "barrier" - %463 = OpString "scratchpad" - %466 = OpString "scratch_locations" - %469 = OpString "stress_params" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_16 0 Offset 0 - OpDecorate %_struct_16 Block - OpDecorate %18 DescriptorSet 0 - OpDecorate %18 Binding 0 - OpDecorate %19 DescriptorSet 0 - OpDecorate %19 Binding 1 - OpDecorate %20 DescriptorSet 0 - OpDecorate %20 Binding 2 - OpDecorate %21 DescriptorSet 0 - OpDecorate %21 Binding 3 - OpDecorate %22 DescriptorSet 0 - OpDecorate %22 Binding 4 - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 5 - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 6 - OpDecorate %6 SpecId 0 - OpDecorate %7 SpecId 1 - OpDecorate %8 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 - %6 = OpSpecConstant %uint 1 - %7 = OpSpecConstant %uint 1 - %8 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %6 %7 %8 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_16 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_16 = OpTypePointer StorageBuffer %_struct_16 - %void = OpTypeVoid - %26 = OpTypeFunction %void -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint - %uint_9 = OpConstant %uint 9 - %bool = OpTypeBool - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 - %uint_100 = OpConstant %uint 100 -%uint_4294967295 = OpConstant %uint 4294967295 - %uint_7 = OpConstant %uint 7 - %uint_10 = OpConstant %uint 10 - %uint_8 = OpConstant %uint 8 - %uint_11 = OpConstant %uint 11 - %uint_4 = OpConstant %uint 4 - %uint_5 = OpConstant %uint 5 - %uint_6 = OpConstant %uint 6 - %uint_64 = OpConstant %uint 64 - %uint_1023 = OpConstant %uint 1023 - %false = OpConstantFalse %bool - %uint_68 = OpConstant %uint 68 - %true = OpConstantTrue %bool - %447 = OpUndef %uint - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant - %11 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input -%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input - %18 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %19 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %20 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %21 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %22 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %27 = OpFunction %void None %26 - %28 = OpLabel - %31 = OpAccessChain %_ptr_StorageBuffer_uint %21 %uint_0 %uint_0 - %32 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_0 - %34 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %35 = OpLoad %uint %34 - %37 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %38 = OpLoad %uint %37 - %39 = OpIAdd %uint %38 %35 - %40 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_0 %39 - %41 = OpLoad %uint %40 - %43 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_9 - %44 = OpLoad %uint %43 - %46 = OpUGreaterThanEqual %bool %41 %44 - OpSelectionMerge %203 None - OpBranchConditional %46 %49 %203 - %49 = OpLabel - %51 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_1 - %52 = OpLoad %uint %51 - %53 = OpINotEqual %bool %52 %uint_0 - OpSelectionMerge %201 None - OpBranchConditional %53 %56 %201 - %56 = OpLabel - %58 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_2 - %59 = OpLoad %uint %58 - %61 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_3 - %62 = OpLoad %uint %61 - %63 = OpINotEqual %bool %59 %uint_0 - OpSelectionMerge %199 None - OpBranchConditional %63 %66 %199 - %66 = OpLabel - %67 = OpPhi %uint %194 %193 %uint_0 %56 - OpLoopMerge %197 %193 None - OpBranch %70 - %70 = OpLabel - %71 = OpSGreaterThanEqual %bool %62 %uint_2 - OpSelectionMerge %124 None - OpBranchConditional %71 %74 %124 - %74 = OpLabel - %75 = OpSGreaterThanEqual %bool %62 %uint_3 - OpSelectionMerge %98 None - OpBranchConditional %75 %78 %98 - %78 = OpLabel - %79 = OpIEqual %bool %62 %uint_3 - OpSelectionMerge %95 None - OpBranchConditional %79 %82 %95 - %82 = OpLabel - %83 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %84 = OpLoad %uint %83 - %85 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %86 = OpLoad %uint %85 - %87 = OpIAdd %uint %86 %84 - %88 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %87 - %89 = OpLoad %uint %88 - %90 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %89 - %91 = OpLoad %uint %90 - %93 = OpULessThanEqual %bool %91 %uint_100 - OpBranch %95 - %95 = OpLabel - %96 = OpPhi %bool %93 %82 %true %78 - OpBranch %98 - %98 = OpLabel - %99 = OpPhi %bool %96 %95 %false %74 - %100 = OpPhi %bool %false %95 %true %74 - OpSelectionMerge %121 None - OpBranchConditional %100 %103 %121 - %103 = OpLabel - %104 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %105 = OpLoad %uint %104 - %106 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %107 = OpLoad %uint %106 - %108 = OpIAdd %uint %107 %105 - %109 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %108 - %110 = OpLoad %uint %109 - %111 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %110 - %112 = OpLoad %uint %111 - %113 = OpULessThanEqual %bool %112 %uint_100 - OpSelectionMerge %118 None - OpBranchConditional %113 %116 %118 - %116 = OpLabel - OpStore %111 %67 - OpBranch %118 - %118 = OpLabel - %119 = OpPhi %bool %true %116 %99 %103 - OpBranch %121 - %121 = OpLabel - %122 = OpPhi %bool %119 %118 %99 %98 - OpBranch %124 - %124 = OpLabel - %125 = OpPhi %bool %122 %121 %false %70 - %126 = OpPhi %bool %false %121 %true %70 - OpSelectionMerge %186 None - OpBranchConditional %126 %129 %186 - %129 = OpLabel - %130 = OpSGreaterThanEqual %bool %62 %uint_1 - OpSelectionMerge %153 None - OpBranchConditional %130 %133 %153 - %133 = OpLabel - %134 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %135 = OpLoad %uint %134 - %136 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %137 = OpLoad %uint %136 - %138 = OpIAdd %uint %137 %135 - %139 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %138 - %140 = OpLoad %uint %139 - %141 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %140 - OpStore %141 %67 - %142 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %143 = OpLoad %uint %142 - %144 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %145 = OpLoad %uint %144 - %146 = OpIAdd %uint %145 %143 - %147 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %146 - %148 = OpLoad %uint %147 - %149 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %148 - %150 = OpLoad %uint %149 - %151 = OpULessThanEqual %bool %150 %uint_100 - OpBranch %153 - %153 = OpLabel - %154 = OpPhi %bool %151 %133 %125 %129 - %155 = OpPhi %bool %false %133 %true %129 - OpSelectionMerge %183 None - OpBranchConditional %155 %158 %183 - %158 = OpLabel - %159 = OpIEqual %bool %62 %uint_0 - OpSelectionMerge %181 None - OpBranchConditional %159 %162 %181 - %162 = OpLabel - %163 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %164 = OpLoad %uint %163 - %165 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %166 = OpLoad %uint %165 - %167 = OpIAdd %uint %166 %164 - %168 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %167 - %169 = OpLoad %uint %168 - %170 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %169 - OpStore %170 %67 - %171 = OpIAdd %uint %67 %uint_1 - %172 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %173 = OpLoad %uint %172 - %174 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %175 = OpLoad %uint %174 - %176 = OpIAdd %uint %175 %173 - %177 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %176 - %178 = OpLoad %uint %177 - %179 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %178 - OpStore %179 %171 - OpBranch %181 - %181 = OpLabel - OpBranch %183 - %183 = OpLabel - %184 = OpPhi %bool %true %181 %154 %153 - OpBranch %186 - %186 = OpLabel - %187 = OpPhi %bool %184 %183 %125 %124 - OpBranchConditional %187 %189 %193 - %189 = OpLabel - %190 = OpIAdd %uint %67 %uint_1 - %191 = OpUGreaterThanEqual %bool %190 %59 - OpBranch %193 - %193 = OpLabel - %194 = OpPhi %uint %190 %189 %447 %186 - %195 = OpPhi %bool %191 %189 %true %186 - OpBranchConditional %195 %197 %66 - %197 = OpLabel - OpBranch %199 - %199 = OpLabel - OpBranch %201 - %201 = OpLabel - OpBranch %203 - %203 = OpLabel - %204 = OpPhi %bool %false %201 %true %28 - OpSelectionMerge %443 None - OpBranchConditional %204 %207 %443 - %207 = OpLabel - %208 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %209 = OpCompositeExtract %uint %208 0 - %210 = OpIMul %uint %209 %44 - %211 = OpIMul %uint %209 %41 - %212 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %213 = OpLoad %uint %212 - %214 = OpIAdd %uint %211 %213 - %215 = OpIAdd %uint %41 %uint_1 - %217 = OpIAdd %uint %44 %uint_4294967295 - %218 = OpUMod %uint %213 %217 - %219 = OpIAdd %uint %215 %218 - %220 = OpUMod %uint %219 %44 - %221 = OpIMul %uint %220 %209 - %223 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_7 - %224 = OpLoad %uint %223 - %225 = OpIMul %uint %224 %213 - %226 = OpUMod %uint %225 %209 - %227 = OpIAdd %uint %226 %221 - %229 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %230 = OpLoad %uint %229 - %231 = OpShiftLeftLogical %uint %214 %uint_1 - %232 = OpIMul %uint %231 %230 - %234 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_8 - %235 = OpLoad %uint %234 - %236 = OpIMul %uint %235 %214 - %237 = OpUMod %uint %236 %210 - %238 = OpShiftLeftLogical %uint %230 %uint_1 - %239 = OpIMul %uint %238 %237 - %241 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_11 - %242 = OpLoad %uint %241 - %243 = OpIAdd %uint %239 %242 - %244 = OpIMul %uint %238 %227 - %245 = OpIMul %uint %235 %227 - %246 = OpUMod %uint %245 %210 - %247 = OpIMul %uint %238 %246 - %248 = OpIAdd %uint %247 %242 - %250 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_4 - %251 = OpLoad %uint %250 - %252 = OpINotEqual %bool %251 %uint_0 - OpSelectionMerge %399 None - OpBranchConditional %252 %255 %399 - %255 = OpLabel - %257 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_5 - %258 = OpLoad %uint %257 - %260 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_6 - %261 = OpLoad %uint %260 - %262 = OpINotEqual %bool %258 %uint_0 - OpSelectionMerge %397 None - OpBranchConditional %262 %265 %397 - %265 = OpLabel - %266 = OpPhi %uint %392 %391 %uint_0 %255 - OpLoopMerge %395 %391 None - OpBranch %269 - %269 = OpLabel - %270 = OpSGreaterThanEqual %bool %261 %uint_2 - OpSelectionMerge %322 None - OpBranchConditional %270 %273 %322 - %273 = OpLabel - %274 = OpSGreaterThanEqual %bool %261 %uint_3 - OpSelectionMerge %296 None - OpBranchConditional %274 %277 %296 - %277 = OpLabel - %278 = OpIEqual %bool %261 %uint_3 - OpSelectionMerge %293 None - OpBranchConditional %278 %281 %293 - %281 = OpLabel - %282 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %283 = OpLoad %uint %282 - %284 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %285 = OpLoad %uint %284 - %286 = OpIAdd %uint %285 %283 - %287 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %286 - %288 = OpLoad %uint %287 - %289 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %288 - %290 = OpLoad %uint %289 - %291 = OpULessThanEqual %bool %290 %uint_100 - OpBranch %293 - %293 = OpLabel - %294 = OpPhi %bool %291 %281 %true %277 - OpBranch %296 - %296 = OpLabel - %297 = OpPhi %bool %294 %293 %false %273 - %298 = OpPhi %bool %false %293 %true %273 - OpSelectionMerge %319 None - OpBranchConditional %298 %301 %319 - %301 = OpLabel - %302 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %303 = OpLoad %uint %302 - %304 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %305 = OpLoad %uint %304 - %306 = OpIAdd %uint %305 %303 - %307 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %306 - %308 = OpLoad %uint %307 - %309 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %308 - %310 = OpLoad %uint %309 - %311 = OpULessThanEqual %bool %310 %uint_100 - OpSelectionMerge %316 None - OpBranchConditional %311 %314 %316 - %314 = OpLabel - OpStore %309 %266 - OpBranch %316 - %316 = OpLabel - %317 = OpPhi %bool %true %314 %297 %301 - OpBranch %319 - %319 = OpLabel - %320 = OpPhi %bool %317 %316 %297 %296 - OpBranch %322 - %322 = OpLabel - %323 = OpPhi %bool %320 %319 %false %269 - %324 = OpPhi %bool %false %319 %true %269 - OpSelectionMerge %384 None - OpBranchConditional %324 %327 %384 - %327 = OpLabel - %328 = OpSGreaterThanEqual %bool %261 %uint_1 - OpSelectionMerge %351 None - OpBranchConditional %328 %331 %351 - %331 = OpLabel - %332 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %333 = OpLoad %uint %332 - %334 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %335 = OpLoad %uint %334 - %336 = OpIAdd %uint %335 %333 - %337 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %336 - %338 = OpLoad %uint %337 - %339 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %338 - OpStore %339 %266 - %340 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %341 = OpLoad %uint %340 - %342 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %343 = OpLoad %uint %342 - %344 = OpIAdd %uint %343 %341 - %345 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %344 - %346 = OpLoad %uint %345 - %347 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %346 - %348 = OpLoad %uint %347 - %349 = OpULessThanEqual %bool %348 %uint_100 - OpBranch %351 - %351 = OpLabel - %352 = OpPhi %bool %349 %331 %323 %327 - %353 = OpPhi %bool %false %331 %true %327 - OpSelectionMerge %381 None - OpBranchConditional %353 %356 %381 - %356 = OpLabel - %357 = OpIEqual %bool %261 %uint_0 - OpSelectionMerge %379 None - OpBranchConditional %357 %360 %379 - %360 = OpLabel - %361 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %362 = OpLoad %uint %361 - %363 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %364 = OpLoad %uint %363 - %365 = OpIAdd %uint %364 %362 - %366 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %365 - %367 = OpLoad %uint %366 - %368 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %367 - OpStore %368 %266 - %369 = OpIAdd %uint %266 %uint_1 - %370 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %371 = OpLoad %uint %370 - %372 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %373 = OpLoad %uint %372 - %374 = OpIAdd %uint %373 %371 - %375 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %374 - %376 = OpLoad %uint %375 - %377 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %376 - OpStore %377 %369 - OpBranch %379 - %379 = OpLabel - OpBranch %381 - %381 = OpLabel - %382 = OpPhi %bool %true %379 %352 %351 - OpBranch %384 - %384 = OpLabel - %385 = OpPhi %bool %382 %381 %323 %322 - OpBranchConditional %385 %387 %391 - %387 = OpLabel - %388 = OpIAdd %uint %266 %uint_1 - %389 = OpUGreaterThanEqual %bool %388 %258 - OpBranch %391 - %391 = OpLabel - %392 = OpPhi %uint %388 %387 %447 %384 - %393 = OpPhi %bool %389 %387 %true %384 - OpBranchConditional %393 %395 %265 - %395 = OpLabel - OpBranch %397 - %397 = OpLabel - OpBranch %399 - %399 = OpLabel - %400 = OpLoad %uint %32 - %401 = OpINotEqual %bool %400 %uint_0 - OpSelectionMerge %430 None - OpBranchConditional %401 %404 %430 - %404 = OpLabel - %405 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %406 = OpCompositeExtract %uint %405 0 - %407 = OpLoad %uint %43 - %408 = OpIMul %uint %406 %407 - %410 = OpAtomicIAdd %uint %31 %uint_1 %uint_64 %uint_1 - %411 = OpULessThan %bool %410 %408 - OpSelectionMerge %428 None - OpBranchConditional %411 %414 %428 - %414 = OpLabel - %415 = OpPhi %uint %417 %414 %uint_0 %404 - %416 = OpAtomicLoad %uint %31 %uint_1 %uint_64 - %417 = OpIAdd %uint %415 %uint_1 - %419 = OpULessThan %bool %415 %uint_1023 - %420 = OpULessThan %bool %416 %408 - %422 = OpSelect %bool %419 %420 %false - %423 = OpLogicalNot %bool %422 - OpLoopMerge %426 %414 None - OpBranchConditional %423 %426 %414 - %426 = OpLabel - OpBranch %428 - %428 = OpLabel - OpBranch %430 - %430 = OpLabel - %431 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %243 - %432 = OpAtomicLoad %uint %431 %uint_1 %uint_64 - %433 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %232 - OpAtomicStore %433 %uint_1 %uint_64 %uint_1 - %434 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %244 - %435 = OpAtomicLoad %uint %434 %uint_1 %uint_64 - %436 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %248 - OpAtomicStore %436 %uint_1 %uint_64 %uint_1 - %437 = OpShiftLeftLogical %uint %227 %uint_1 - %438 = OpBitwiseOr %uint %437 %uint_1 - %439 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %438 - OpAtomicStore %439 %uint_1 %uint_68 %435 - %441 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %231 - OpAtomicStore %441 %uint_1 %uint_68 %432 - OpBranch %443 - %443 = OpLabel - OpBranch %445 - %445 = OpLabel - OpReturn - OpFunctionEnd - %473 = OpExtInst %void %448 PushConstantRegionGroupOffset %uint_0 %uint_12 - %450 = OpExtInst %void %448 Kernel %27 %449 %uint_7 - %452 = OpExtInst %void %448 ArgumentInfo %451 - %453 = OpExtInst %void %448 ArgumentStorageBuffer %450 %uint_0 %uint_0 %uint_0 %452 - %455 = OpExtInst %void %448 ArgumentInfo %454 - %456 = OpExtInst %void %448 ArgumentStorageBuffer %450 %uint_1 %uint_0 %uint_1 %455 - %458 = OpExtInst %void %448 ArgumentInfo %457 - %459 = OpExtInst %void %448 ArgumentStorageBuffer %450 %uint_2 %uint_0 %uint_2 %458 - %461 = OpExtInst %void %448 ArgumentInfo %460 - %462 = OpExtInst %void %448 ArgumentStorageBuffer %450 %uint_3 %uint_0 %uint_3 %461 - %464 = OpExtInst %void %448 ArgumentInfo %463 - %465 = OpExtInst %void %448 ArgumentStorageBuffer %450 %uint_4 %uint_0 %uint_4 %464 - %467 = OpExtInst %void %448 ArgumentInfo %466 - %468 = OpExtInst %void %448 ArgumentStorageBuffer %450 %uint_5 %uint_0 %uint_5 %467 - %470 = OpExtInst %void %448 ArgumentInfo %469 - %471 = OpExtInst %void %448 ArgumentStorageBuffer %450 %uint_6 %uint_0 %uint_6 %470 - %474 = OpExtInst %void %448 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/message-passing-results.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/message-passing-results.spv.dis deleted file mode 100644 index 878834cc70..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/message-passing-results.spv.dis +++ /dev/null @@ -1,192 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 155 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %136 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %27 "litmus_test" %gl_GlobalInvocationID - OpSource OpenCL_C 200 - %137 = OpString "litmus_test" - %140 = OpString "test_locations" - %143 = OpString "read_results" - %146 = OpString "test_results" - %149 = OpString "stress_params" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_15 0 Offset 0 - OpDecorate %_struct_15 Block - OpMemberDecorate %_struct_19 0 Offset 0 - OpMemberDecorate %_struct_19 1 Offset 4 - OpMemberDecorate %_struct_19 2 Offset 8 - OpMemberDecorate %_struct_19 3 Offset 12 - OpDecorate %_runtimearr__struct_19 ArrayStride 16 - OpMemberDecorate %_struct_21 0 Offset 0 - OpDecorate %_struct_21 Block - OpDecorate %17 DescriptorSet 0 - OpDecorate %17 Binding 0 - OpDecorate %18 DescriptorSet 0 - OpDecorate %18 Binding 1 - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 2 - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 3 - OpDecorate %8 SpecId 0 - OpDecorate %9 SpecId 1 - OpDecorate %10 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint - %8 = OpSpecConstant %uint 1 - %9 = OpSpecConstant %uint 1 - %10 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %8 %9 %10 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_15 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_15 = OpTypePointer StorageBuffer %_struct_15 - %_struct_19 = OpTypeStruct %uint %uint %uint %uint -%_runtimearr__struct_19 = OpTypeRuntimeArray %_struct_19 - %_struct_21 = OpTypeStruct %_runtimearr__struct_19 -%_ptr_StorageBuffer__struct_21 = OpTypePointer StorageBuffer %_struct_21 - %void = OpTypeVoid - %26 = OpTypeFunction %void -%_ptr_Input_uint = OpTypePointer Input %uint - %uint_0 = OpConstant %uint 0 -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_10 = OpConstant %uint 10 - %uint_1 = OpConstant %uint 1 - %uint_66 = OpConstant %uint 66 - %uint_9 = OpConstant %uint 9 - %uint_8 = OpConstant %uint 8 - %uint_11 = OpConstant %uint 11 - %bool = OpTypeBool - %false = OpConstantFalse %bool - %uint_3 = OpConstant %uint 3 - %uint_72 = OpConstant %uint 72 - %uint_2 = OpConstant %uint 2 - %true = OpConstantTrue %bool - %uint_4 = OpConstant %uint 4 - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input - %13 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize - %17 = OpVariable %_ptr_StorageBuffer__struct_15 StorageBuffer - %18 = OpVariable %_ptr_StorageBuffer__struct_15 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_21 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_15 StorageBuffer - %27 = OpFunction %void None %26 - %28 = OpLabel - %31 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %32 = OpLoad %uint %31 - %34 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %35 = OpLoad %uint %34 - %36 = OpIAdd %uint %35 %32 - %39 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %40 = OpLoad %uint %39 - %42 = OpShiftLeftLogical %uint %40 %uint_1 - %43 = OpIMul %uint %42 %36 - %44 = OpAccessChain %_ptr_StorageBuffer_uint %17 %uint_0 %43 - %46 = OpAtomicLoad %uint %44 %uint_1 %uint_66 - %47 = OpShiftLeftLogical %uint %36 %uint_1 - %48 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %47 - %49 = OpAtomicLoad %uint %48 %uint_1 %uint_66 - %50 = OpBitwiseOr %uint %47 %uint_1 - %51 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %50 - %52 = OpAtomicLoad %uint %51 %uint_1 %uint_66 - %53 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %54 = OpCompositeExtract %uint %53 0 - %56 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_9 - %57 = OpLoad %uint %56 - %58 = OpIMul %uint %54 %57 - %60 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_8 - %61 = OpLoad %uint %60 - %62 = OpIMul %uint %61 %36 - %63 = OpUMod %uint %62 %58 - %64 = OpLoad %uint %39 - %65 = OpShiftLeftLogical %uint %63 %uint_1 - %66 = OpIMul %uint %65 %64 - %68 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_11 - %69 = OpLoad %uint %68 - %70 = OpIAdd %uint %66 %69 - %71 = OpAccessChain %_ptr_StorageBuffer_uint %17 %uint_0 %70 - %72 = OpAtomicLoad %uint %71 %uint_1 %uint_66 - %74 = OpIEqual %bool %49 %uint_0 - %75 = OpIEqual %bool %52 %uint_0 - %77 = OpSelect %bool %74 %75 %false - %78 = OpLogicalNot %bool %77 - OpSelectionMerge %126 None - OpBranchConditional %78 %81 %126 - %81 = OpLabel - %82 = OpIEqual %bool %49 %uint_1 - %83 = OpIEqual %bool %52 %uint_1 - %84 = OpSelect %bool %82 %83 %false - %85 = OpLogicalNot %bool %84 - OpSelectionMerge %116 None - OpBranchConditional %85 %88 %116 - %88 = OpLabel - %89 = OpSelect %bool %74 %83 %false - %90 = OpLogicalNot %bool %89 - OpSelectionMerge %105 None - OpBranchConditional %90 %93 %105 - %93 = OpLabel - %94 = OpSelect %bool %82 %75 %false - OpSelectionMerge %103 None - OpBranchConditional %94 %97 %103 - %97 = OpLabel - %99 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_3 - %101 = OpAtomicIAdd %uint %99 %uint_1 %uint_72 %uint_1 - OpBranch %103 - %103 = OpLabel - OpBranch %105 - %105 = OpLabel - %106 = OpPhi %bool %false %103 %true %88 - OpSelectionMerge %114 None - OpBranchConditional %106 %109 %114 - %109 = OpLabel - %111 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_2 - %112 = OpAtomicIAdd %uint %111 %uint_1 %uint_72 %uint_1 - OpBranch %114 - %114 = OpLabel - OpBranch %116 - %116 = OpLabel - %117 = OpPhi %bool %false %114 %true %81 - OpSelectionMerge %124 None - OpBranchConditional %117 %120 %124 - %120 = OpLabel - %121 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_1 - %122 = OpAtomicIAdd %uint %121 %uint_1 %uint_72 %uint_1 - OpBranch %124 - %124 = OpLabel - OpBranch %126 - %126 = OpLabel - %127 = OpPhi %bool %false %124 %true %28 - OpSelectionMerge %134 None - OpBranchConditional %127 %130 %134 - %130 = OpLabel - %131 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_0 - %132 = OpAtomicIAdd %uint %131 %uint_1 %uint_72 %uint_1 - OpBranch %134 - %134 = OpLabel - OpReturn - OpFunctionEnd - %153 = OpExtInst %void %136 PushConstantRegionOffset %uint_0 %uint_12 - %139 = OpExtInst %void %136 Kernel %27 %137 %uint_4 - %141 = OpExtInst %void %136 ArgumentInfo %140 - %142 = OpExtInst %void %136 ArgumentStorageBuffer %139 %uint_0 %uint_0 %uint_0 %141 - %144 = OpExtInst %void %136 ArgumentInfo %143 - %145 = OpExtInst %void %136 ArgumentStorageBuffer %139 %uint_1 %uint_0 %uint_1 %144 - %147 = OpExtInst %void %136 ArgumentInfo %146 - %148 = OpExtInst %void %136 ArgumentStorageBuffer %139 %uint_2 %uint_0 %uint_2 %147 - %150 = OpExtInst %void %136 ArgumentInfo %149 - %151 = OpExtInst %void %136 ArgumentStorageBuffer %139 %uint_3 %uint_0 %uint_3 %150 - %154 = OpExtInst %void %136 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/message-passing.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/message-passing.spv.dis deleted file mode 100644 index ae7aef410c..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/message-passing.spv.dis +++ /dev/null @@ -1,524 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 475 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %448 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %27 "litmus_test" %gl_LocalInvocationID %gl_WorkGroupID - OpSource OpenCL_C 200 - %449 = OpString "litmus_test" - %451 = OpString "test_locations" - %454 = OpString "read_results" - %457 = OpString "shuffled_workgroups" - %460 = OpString "barrier" - %463 = OpString "scratchpad" - %466 = OpString "scratch_locations" - %469 = OpString "stress_params" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_16 0 Offset 0 - OpDecorate %_struct_16 Block - OpDecorate %18 DescriptorSet 0 - OpDecorate %18 Binding 0 - OpDecorate %19 DescriptorSet 0 - OpDecorate %19 Binding 1 - OpDecorate %20 DescriptorSet 0 - OpDecorate %20 Binding 2 - OpDecorate %21 DescriptorSet 0 - OpDecorate %21 Binding 3 - OpDecorate %22 DescriptorSet 0 - OpDecorate %22 Binding 4 - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 5 - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 6 - OpDecorate %6 SpecId 0 - OpDecorate %7 SpecId 1 - OpDecorate %8 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 - %6 = OpSpecConstant %uint 1 - %7 = OpSpecConstant %uint 1 - %8 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %6 %7 %8 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_16 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_16 = OpTypePointer StorageBuffer %_struct_16 - %void = OpTypeVoid - %26 = OpTypeFunction %void -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint - %uint_9 = OpConstant %uint 9 - %bool = OpTypeBool - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 - %uint_100 = OpConstant %uint 100 -%uint_4294967295 = OpConstant %uint 4294967295 - %uint_7 = OpConstant %uint 7 - %uint_10 = OpConstant %uint 10 - %uint_8 = OpConstant %uint 8 - %uint_11 = OpConstant %uint 11 - %uint_4 = OpConstant %uint 4 - %uint_5 = OpConstant %uint 5 - %uint_6 = OpConstant %uint 6 - %uint_64 = OpConstant %uint 64 - %uint_1023 = OpConstant %uint 1023 - %false = OpConstantFalse %bool - %uint_68 = OpConstant %uint 68 - %true = OpConstantTrue %bool - %447 = OpUndef %uint - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant - %11 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input -%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input - %18 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %19 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %20 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %21 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %22 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %27 = OpFunction %void None %26 - %28 = OpLabel - %31 = OpAccessChain %_ptr_StorageBuffer_uint %21 %uint_0 %uint_0 - %32 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_0 - %34 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %35 = OpLoad %uint %34 - %37 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %38 = OpLoad %uint %37 - %39 = OpIAdd %uint %38 %35 - %40 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_0 %39 - %41 = OpLoad %uint %40 - %43 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_9 - %44 = OpLoad %uint %43 - %46 = OpUGreaterThanEqual %bool %41 %44 - OpSelectionMerge %203 None - OpBranchConditional %46 %49 %203 - %49 = OpLabel - %51 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_1 - %52 = OpLoad %uint %51 - %53 = OpINotEqual %bool %52 %uint_0 - OpSelectionMerge %201 None - OpBranchConditional %53 %56 %201 - %56 = OpLabel - %58 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_2 - %59 = OpLoad %uint %58 - %61 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_3 - %62 = OpLoad %uint %61 - %63 = OpINotEqual %bool %59 %uint_0 - OpSelectionMerge %199 None - OpBranchConditional %63 %66 %199 - %66 = OpLabel - %67 = OpPhi %uint %194 %193 %uint_0 %56 - OpLoopMerge %197 %193 None - OpBranch %70 - %70 = OpLabel - %71 = OpSGreaterThanEqual %bool %62 %uint_2 - OpSelectionMerge %124 None - OpBranchConditional %71 %74 %124 - %74 = OpLabel - %75 = OpSGreaterThanEqual %bool %62 %uint_3 - OpSelectionMerge %98 None - OpBranchConditional %75 %78 %98 - %78 = OpLabel - %79 = OpIEqual %bool %62 %uint_3 - OpSelectionMerge %95 None - OpBranchConditional %79 %82 %95 - %82 = OpLabel - %83 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %84 = OpLoad %uint %83 - %85 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %86 = OpLoad %uint %85 - %87 = OpIAdd %uint %86 %84 - %88 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %87 - %89 = OpLoad %uint %88 - %90 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %89 - %91 = OpLoad %uint %90 - %93 = OpULessThanEqual %bool %91 %uint_100 - OpBranch %95 - %95 = OpLabel - %96 = OpPhi %bool %93 %82 %true %78 - OpBranch %98 - %98 = OpLabel - %99 = OpPhi %bool %96 %95 %false %74 - %100 = OpPhi %bool %false %95 %true %74 - OpSelectionMerge %121 None - OpBranchConditional %100 %103 %121 - %103 = OpLabel - %104 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %105 = OpLoad %uint %104 - %106 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %107 = OpLoad %uint %106 - %108 = OpIAdd %uint %107 %105 - %109 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %108 - %110 = OpLoad %uint %109 - %111 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %110 - %112 = OpLoad %uint %111 - %113 = OpULessThanEqual %bool %112 %uint_100 - OpSelectionMerge %118 None - OpBranchConditional %113 %116 %118 - %116 = OpLabel - OpStore %111 %67 - OpBranch %118 - %118 = OpLabel - %119 = OpPhi %bool %true %116 %99 %103 - OpBranch %121 - %121 = OpLabel - %122 = OpPhi %bool %119 %118 %99 %98 - OpBranch %124 - %124 = OpLabel - %125 = OpPhi %bool %122 %121 %false %70 - %126 = OpPhi %bool %false %121 %true %70 - OpSelectionMerge %186 None - OpBranchConditional %126 %129 %186 - %129 = OpLabel - %130 = OpSGreaterThanEqual %bool %62 %uint_1 - OpSelectionMerge %153 None - OpBranchConditional %130 %133 %153 - %133 = OpLabel - %134 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %135 = OpLoad %uint %134 - %136 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %137 = OpLoad %uint %136 - %138 = OpIAdd %uint %137 %135 - %139 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %138 - %140 = OpLoad %uint %139 - %141 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %140 - OpStore %141 %67 - %142 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %143 = OpLoad %uint %142 - %144 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %145 = OpLoad %uint %144 - %146 = OpIAdd %uint %145 %143 - %147 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %146 - %148 = OpLoad %uint %147 - %149 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %148 - %150 = OpLoad %uint %149 - %151 = OpULessThanEqual %bool %150 %uint_100 - OpBranch %153 - %153 = OpLabel - %154 = OpPhi %bool %151 %133 %125 %129 - %155 = OpPhi %bool %false %133 %true %129 - OpSelectionMerge %183 None - OpBranchConditional %155 %158 %183 - %158 = OpLabel - %159 = OpIEqual %bool %62 %uint_0 - OpSelectionMerge %181 None - OpBranchConditional %159 %162 %181 - %162 = OpLabel - %163 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %164 = OpLoad %uint %163 - %165 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %166 = OpLoad %uint %165 - %167 = OpIAdd %uint %166 %164 - %168 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %167 - %169 = OpLoad %uint %168 - %170 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %169 - OpStore %170 %67 - %171 = OpIAdd %uint %67 %uint_1 - %172 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %173 = OpLoad %uint %172 - %174 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %175 = OpLoad %uint %174 - %176 = OpIAdd %uint %175 %173 - %177 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %176 - %178 = OpLoad %uint %177 - %179 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %178 - OpStore %179 %171 - OpBranch %181 - %181 = OpLabel - OpBranch %183 - %183 = OpLabel - %184 = OpPhi %bool %true %181 %154 %153 - OpBranch %186 - %186 = OpLabel - %187 = OpPhi %bool %184 %183 %125 %124 - OpBranchConditional %187 %189 %193 - %189 = OpLabel - %190 = OpIAdd %uint %67 %uint_1 - %191 = OpUGreaterThanEqual %bool %190 %59 - OpBranch %193 - %193 = OpLabel - %194 = OpPhi %uint %190 %189 %447 %186 - %195 = OpPhi %bool %191 %189 %true %186 - OpBranchConditional %195 %197 %66 - %197 = OpLabel - OpBranch %199 - %199 = OpLabel - OpBranch %201 - %201 = OpLabel - OpBranch %203 - %203 = OpLabel - %204 = OpPhi %bool %false %201 %true %28 - OpSelectionMerge %443 None - OpBranchConditional %204 %207 %443 - %207 = OpLabel - %208 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %209 = OpCompositeExtract %uint %208 0 - %210 = OpIMul %uint %209 %44 - %211 = OpIMul %uint %209 %41 - %212 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %213 = OpLoad %uint %212 - %214 = OpIAdd %uint %211 %213 - %215 = OpIAdd %uint %41 %uint_1 - %217 = OpIAdd %uint %44 %uint_4294967295 - %218 = OpUMod %uint %213 %217 - %219 = OpIAdd %uint %215 %218 - %220 = OpUMod %uint %219 %44 - %221 = OpIMul %uint %220 %209 - %223 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_7 - %224 = OpLoad %uint %223 - %225 = OpIMul %uint %224 %213 - %226 = OpUMod %uint %225 %209 - %227 = OpIAdd %uint %226 %221 - %229 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %230 = OpLoad %uint %229 - %231 = OpShiftLeftLogical %uint %214 %uint_1 - %232 = OpIMul %uint %231 %230 - %234 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_8 - %235 = OpLoad %uint %234 - %236 = OpIMul %uint %235 %214 - %237 = OpUMod %uint %236 %210 - %238 = OpShiftLeftLogical %uint %230 %uint_1 - %239 = OpIMul %uint %238 %237 - %241 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_11 - %242 = OpLoad %uint %241 - %243 = OpIAdd %uint %239 %242 - %244 = OpIMul %uint %238 %227 - %245 = OpIMul %uint %235 %227 - %246 = OpUMod %uint %245 %210 - %247 = OpIMul %uint %238 %246 - %248 = OpIAdd %uint %247 %242 - %250 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_4 - %251 = OpLoad %uint %250 - %252 = OpINotEqual %bool %251 %uint_0 - OpSelectionMerge %399 None - OpBranchConditional %252 %255 %399 - %255 = OpLabel - %257 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_5 - %258 = OpLoad %uint %257 - %260 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_6 - %261 = OpLoad %uint %260 - %262 = OpINotEqual %bool %258 %uint_0 - OpSelectionMerge %397 None - OpBranchConditional %262 %265 %397 - %265 = OpLabel - %266 = OpPhi %uint %392 %391 %uint_0 %255 - OpLoopMerge %395 %391 None - OpBranch %269 - %269 = OpLabel - %270 = OpSGreaterThanEqual %bool %261 %uint_2 - OpSelectionMerge %322 None - OpBranchConditional %270 %273 %322 - %273 = OpLabel - %274 = OpSGreaterThanEqual %bool %261 %uint_3 - OpSelectionMerge %296 None - OpBranchConditional %274 %277 %296 - %277 = OpLabel - %278 = OpIEqual %bool %261 %uint_3 - OpSelectionMerge %293 None - OpBranchConditional %278 %281 %293 - %281 = OpLabel - %282 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %283 = OpLoad %uint %282 - %284 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %285 = OpLoad %uint %284 - %286 = OpIAdd %uint %285 %283 - %287 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %286 - %288 = OpLoad %uint %287 - %289 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %288 - %290 = OpLoad %uint %289 - %291 = OpULessThanEqual %bool %290 %uint_100 - OpBranch %293 - %293 = OpLabel - %294 = OpPhi %bool %291 %281 %true %277 - OpBranch %296 - %296 = OpLabel - %297 = OpPhi %bool %294 %293 %false %273 - %298 = OpPhi %bool %false %293 %true %273 - OpSelectionMerge %319 None - OpBranchConditional %298 %301 %319 - %301 = OpLabel - %302 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %303 = OpLoad %uint %302 - %304 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %305 = OpLoad %uint %304 - %306 = OpIAdd %uint %305 %303 - %307 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %306 - %308 = OpLoad %uint %307 - %309 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %308 - %310 = OpLoad %uint %309 - %311 = OpULessThanEqual %bool %310 %uint_100 - OpSelectionMerge %316 None - OpBranchConditional %311 %314 %316 - %314 = OpLabel - OpStore %309 %266 - OpBranch %316 - %316 = OpLabel - %317 = OpPhi %bool %true %314 %297 %301 - OpBranch %319 - %319 = OpLabel - %320 = OpPhi %bool %317 %316 %297 %296 - OpBranch %322 - %322 = OpLabel - %323 = OpPhi %bool %320 %319 %false %269 - %324 = OpPhi %bool %false %319 %true %269 - OpSelectionMerge %384 None - OpBranchConditional %324 %327 %384 - %327 = OpLabel - %328 = OpSGreaterThanEqual %bool %261 %uint_1 - OpSelectionMerge %351 None - OpBranchConditional %328 %331 %351 - %331 = OpLabel - %332 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %333 = OpLoad %uint %332 - %334 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %335 = OpLoad %uint %334 - %336 = OpIAdd %uint %335 %333 - %337 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %336 - %338 = OpLoad %uint %337 - %339 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %338 - OpStore %339 %266 - %340 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %341 = OpLoad %uint %340 - %342 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %343 = OpLoad %uint %342 - %344 = OpIAdd %uint %343 %341 - %345 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %344 - %346 = OpLoad %uint %345 - %347 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %346 - %348 = OpLoad %uint %347 - %349 = OpULessThanEqual %bool %348 %uint_100 - OpBranch %351 - %351 = OpLabel - %352 = OpPhi %bool %349 %331 %323 %327 - %353 = OpPhi %bool %false %331 %true %327 - OpSelectionMerge %381 None - OpBranchConditional %353 %356 %381 - %356 = OpLabel - %357 = OpIEqual %bool %261 %uint_0 - OpSelectionMerge %379 None - OpBranchConditional %357 %360 %379 - %360 = OpLabel - %361 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %362 = OpLoad %uint %361 - %363 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %364 = OpLoad %uint %363 - %365 = OpIAdd %uint %364 %362 - %366 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %365 - %367 = OpLoad %uint %366 - %368 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %367 - OpStore %368 %266 - %369 = OpIAdd %uint %266 %uint_1 - %370 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %371 = OpLoad %uint %370 - %372 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %373 = OpLoad %uint %372 - %374 = OpIAdd %uint %373 %371 - %375 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %374 - %376 = OpLoad %uint %375 - %377 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %376 - OpStore %377 %369 - OpBranch %379 - %379 = OpLabel - OpBranch %381 - %381 = OpLabel - %382 = OpPhi %bool %true %379 %352 %351 - OpBranch %384 - %384 = OpLabel - %385 = OpPhi %bool %382 %381 %323 %322 - OpBranchConditional %385 %387 %391 - %387 = OpLabel - %388 = OpIAdd %uint %266 %uint_1 - %389 = OpUGreaterThanEqual %bool %388 %258 - OpBranch %391 - %391 = OpLabel - %392 = OpPhi %uint %388 %387 %447 %384 - %393 = OpPhi %bool %389 %387 %true %384 - OpBranchConditional %393 %395 %265 - %395 = OpLabel - OpBranch %397 - %397 = OpLabel - OpBranch %399 - %399 = OpLabel - %400 = OpLoad %uint %32 - %401 = OpINotEqual %bool %400 %uint_0 - OpSelectionMerge %430 None - OpBranchConditional %401 %404 %430 - %404 = OpLabel - %405 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %406 = OpCompositeExtract %uint %405 0 - %407 = OpLoad %uint %43 - %408 = OpIMul %uint %406 %407 - %410 = OpAtomicIAdd %uint %31 %uint_1 %uint_64 %uint_1 - %411 = OpULessThan %bool %410 %408 - OpSelectionMerge %428 None - OpBranchConditional %411 %414 %428 - %414 = OpLabel - %415 = OpPhi %uint %417 %414 %uint_0 %404 - %416 = OpAtomicLoad %uint %31 %uint_1 %uint_64 - %417 = OpIAdd %uint %415 %uint_1 - %419 = OpULessThan %bool %415 %uint_1023 - %420 = OpULessThan %bool %416 %408 - %422 = OpSelect %bool %419 %420 %false - %423 = OpLogicalNot %bool %422 - OpLoopMerge %426 %414 None - OpBranchConditional %423 %426 %414 - %426 = OpLabel - OpBranch %428 - %428 = OpLabel - OpBranch %430 - %430 = OpLabel - %431 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %232 - OpAtomicStore %431 %uint_1 %uint_64 %uint_1 - %432 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %243 - OpAtomicStore %432 %uint_1 %uint_64 %uint_1 - %433 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %248 - %434 = OpAtomicLoad %uint %433 %uint_1 %uint_64 - %435 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %244 - %436 = OpAtomicLoad %uint %435 %uint_1 %uint_64 - %437 = OpShiftLeftLogical %uint %227 %uint_1 - %438 = OpBitwiseOr %uint %437 %uint_1 - %439 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %438 - OpAtomicStore %439 %uint_1 %uint_68 %436 - %441 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %437 - OpAtomicStore %441 %uint_1 %uint_68 %434 - OpBranch %443 - %443 = OpLabel - OpBranch %445 - %445 = OpLabel - OpReturn - OpFunctionEnd - %473 = OpExtInst %void %448 PushConstantRegionGroupOffset %uint_0 %uint_12 - %450 = OpExtInst %void %448 Kernel %27 %449 %uint_7 - %452 = OpExtInst %void %448 ArgumentInfo %451 - %453 = OpExtInst %void %448 ArgumentStorageBuffer %450 %uint_0 %uint_0 %uint_0 %452 - %455 = OpExtInst %void %448 ArgumentInfo %454 - %456 = OpExtInst %void %448 ArgumentStorageBuffer %450 %uint_1 %uint_0 %uint_1 %455 - %458 = OpExtInst %void %448 ArgumentInfo %457 - %459 = OpExtInst %void %448 ArgumentStorageBuffer %450 %uint_2 %uint_0 %uint_2 %458 - %461 = OpExtInst %void %448 ArgumentInfo %460 - %462 = OpExtInst %void %448 ArgumentStorageBuffer %450 %uint_3 %uint_0 %uint_3 %461 - %464 = OpExtInst %void %448 ArgumentInfo %463 - %465 = OpExtInst %void %448 ArgumentStorageBuffer %450 %uint_4 %uint_0 %uint_4 %464 - %467 = OpExtInst %void %448 ArgumentInfo %466 - %468 = OpExtInst %void %448 ArgumentStorageBuffer %450 %uint_5 %uint_0 %uint_5 %467 - %470 = OpExtInst %void %448 ArgumentInfo %469 - %471 = OpExtInst %void %448 ArgumentStorageBuffer %450 %uint_6 %uint_0 %uint_6 %470 - %474 = OpExtInst %void %448 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/mp-memory-operands.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/mp-memory-operands.spv.dis new file mode 100644 index 0000000000..a83edaf410 --- /dev/null +++ b/dartagnan/src/test/resources/parsers/program/spirv/valid/mp-memory-operands.spv.dis @@ -0,0 +1,94 @@ +; @Input: %4 = {{0}} +; @Input: %5 = {{0}} +; @Input: %6 = {{0}} +; @Input: %7 = {{0}} +; SPIR-V +; Version: 1.6 +; Generator: Khronos SPIR-V Tools Assembler; 0 +; Bound: 56 +; Schema: 0 + OpCapability Shader + OpCapability VulkanMemoryModel + OpMemoryModel Logical Vulkan + OpEntryPoint GLCompute %1 "test" %2 %gl_GlobalInvocationID %4 %5 %6 %7 + OpMemberDecorate %_struct_8 0 Offset 0 + OpDecorate %_struct_8 Block + OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId + OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize + OpDecorate %_runtimearr_uint ArrayStride 4 + OpMemberDecorate %_struct_11 0 Offset 0 + OpDecorate %_struct_11 Block + OpDecorate %7 DescriptorSet 0 + OpDecorate %7 Binding 0 + OpDecorate %6 DescriptorSet 0 + OpDecorate %6 Binding 1 + OpDecorate %5 DescriptorSet 0 + OpDecorate %5 Binding 2 + OpDecorate %4 DescriptorSet 0 + OpDecorate %4 Binding 3 + OpDecorate %12 SpecId 0 + OpDecorate %13 SpecId 1 + OpDecorate %14 SpecId 2 + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 + %_struct_8 = OpTypeStruct %v3uint +%_ptr_PushConstant__struct_8 = OpTypePointer PushConstant %_struct_8 +%_ptr_Input_v3uint = OpTypePointer Input %v3uint + %12 = OpSpecConstant %uint 1 + %13 = OpSpecConstant %uint 1 + %14 = OpSpecConstant %uint 1 +%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %12 %13 %14 +%_ptr_Private_v3uint = OpTypePointer Private %v3uint +%_runtimearr_uint = OpTypeRuntimeArray %uint + %_struct_11 = OpTypeStruct %_runtimearr_uint +%_ptr_StorageBuffer__struct_11 = OpTypePointer StorageBuffer %_struct_11 + %void = OpTypeVoid + %22 = OpTypeFunction %void +%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint + %uint_0 = OpConstant %uint 0 +%_ptr_Input_uint = OpTypePointer Input %uint +%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint + %bool = OpTypeBool + %uint_1 = OpConstant %uint 1 + %uint_66 = OpConstant %uint 66 + %uint_68 = OpConstant %uint 68 + %false = OpConstantFalse %bool + %true = OpConstantTrue %bool + %2 = OpVariable %_ptr_PushConstant__struct_8 PushConstant +%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input + %37 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize + %7 = OpVariable %_ptr_StorageBuffer__struct_11 StorageBuffer + %6 = OpVariable %_ptr_StorageBuffer__struct_11 StorageBuffer + %5 = OpVariable %_ptr_StorageBuffer__struct_11 StorageBuffer + %4 = OpVariable %_ptr_StorageBuffer__struct_11 StorageBuffer + %1 = OpFunction %void None %22 + %38 = OpLabel + %39 = OpAccessChain %_ptr_StorageBuffer_uint %7 %uint_0 %uint_0 + %40 = OpAccessChain %_ptr_StorageBuffer_uint %6 %uint_0 %uint_0 + %41 = OpAccessChain %_ptr_StorageBuffer_uint %5 %uint_0 %uint_0 + %42 = OpAccessChain %_ptr_StorageBuffer_uint %4 %uint_0 %uint_0 + %43 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 + %44 = OpLoad %uint %43 + %45 = OpAccessChain %_ptr_PushConstant_uint %2 %uint_0 %uint_0 + %46 = OpLoad %uint %45 + %47 = OpISub %uint %uint_0 %46 + %48 = OpINotEqual %bool %44 %47 + OpSelectionMerge %49 None + OpBranchConditional %48 %50 %49 + %50 = OpLabel + %51 = OpAtomicLoad %uint %39 %uint_1 %uint_66 + OpStore %41 %51 + %52 = OpLoad %uint %40 Volatile|Aligned|Nontemporal|MakePointerVisible|NonPrivatePointer 4 %uint_1 + OpStore %42 %52 + OpBranch %49 + %49 = OpLabel + %53 = OpPhi %bool %false %50 %true %38 + OpSelectionMerge %54 None + OpBranchConditional %53 %55 %54 + %55 = OpLabel + OpStore %40 %uint_1 Volatile|Aligned|Nontemporal|MakePointerAvailable|NonPrivatePointer 4 %uint_1 + OpAtomicStore %39 %uint_1 %uint_68 %uint_1 + OpBranch %54 + %54 = OpLabel + OpReturn + OpFunctionEnd diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/primitive_barrier.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/primitive_barrier.spv.dis deleted file mode 100644 index e40aa87db5..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/primitive_barrier.spv.dis +++ /dev/null @@ -1,338 +0,0 @@ -; SPIR-V -; Version: 1.3 -; Generator: Google Clspv; 0 -; Bound: 279 -; Schema: 0 - OpCapability Shader - OpCapability Int8 - OpExtension "SPV_KHR_non_semantic_info" - %215 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %31 "noBarrier" %gl_GlobalInvocationID %gl_LocalInvocationID - OpEntryPoint GLCompute %75 "localSubgroupBarrier" %gl_GlobalInvocationID %gl_LocalInvocationID - OpEntryPoint GLCompute %111 "globalSubgroupBarrier" %gl_GlobalInvocationID %gl_LocalInvocationID - OpEntryPoint GLCompute %146 "localWorkgroupBarrier" %gl_GlobalInvocationID %gl_LocalInvocationID - OpEntryPoint GLCompute %181 "globalWorkgroupBarrier" %gl_GlobalInvocationID %gl_LocalInvocationID - OpSource OpenCL_C 200 - %216 = OpString "noBarrier" - %217 = OpString " kernel" - %219 = OpString "buf" - %222 = OpString "buf_size" - %225 = OpString "num_iters" - %228 = OpString "localSubgroupBarrier" - %229 = OpString " kernel" - %231 = OpString "buf" - %234 = OpString "buf_size" - %237 = OpString "num_iters" - %240 = OpString "globalSubgroupBarrier" - %241 = OpString " kernel" - %243 = OpString "buf" - %246 = OpString "buf_size" - %249 = OpString "num_iters" - %252 = OpString "localWorkgroupBarrier" - %253 = OpString " kernel" - %255 = OpString "buf" - %258 = OpString "buf_size" - %261 = OpString "num_iters" - %264 = OpString "globalWorkgroupBarrier" - %265 = OpString " kernel" - %267 = OpString "buf" - %270 = OpString "buf_size" - %273 = OpString "num_iters" - OpMemberDecorate %_struct_8 0 Offset 0 - OpDecorate %_struct_8 Block - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %_runtimearr_uchar ArrayStride 1 - OpMemberDecorate %_struct_21 0 Offset 0 - OpDecorate %_struct_21 Block - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_25 0 Offset 0 - OpDecorate %_struct_25 Block - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 0 - OpDecorate %27 DescriptorSet 0 - OpDecorate %27 Binding 1 - OpDecorate %28 DescriptorSet 0 - OpDecorate %28 Binding 2 - OpDecorate %_arr_uchar_uint_1024 ArrayStride 1 - OpDecorate %14 SpecId 0 - OpDecorate %15 SpecId 1 - OpDecorate %16 SpecId 2 - %uchar = OpTypeInt 8 0 - %uint = OpTypeInt 32 0 - %uint_1024 = OpConstant %uint 1024 -%_arr_uchar_uint_1024 = OpTypeArray %uchar %uint_1024 -%_ptr_Workgroup__arr_uchar_uint_1024 = OpTypePointer Workgroup %_arr_uchar_uint_1024 - %v3uint = OpTypeVector %uint 3 - %_struct_8 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_8 = OpTypePointer PushConstant %_struct_8 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint - %14 = OpSpecConstant %uint 1 - %15 = OpSpecConstant %uint 1 - %16 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %14 %15 %16 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_runtimearr_uchar = OpTypeRuntimeArray %uchar - %_struct_21 = OpTypeStruct %_runtimearr_uchar -%_ptr_StorageBuffer__struct_21 = OpTypePointer StorageBuffer %_struct_21 -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_25 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_25 = OpTypePointer StorageBuffer %_struct_25 - %void = OpTypeVoid - %30 = OpTypeFunction %void -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_0 = OpConstant %uint 0 - %bool = OpTypeBool -%_ptr_Input_uint = OpTypePointer Input %uint - %uint_1023 = OpConstant %uint 1023 -%_ptr_Workgroup_uchar = OpTypePointer Workgroup %uchar - %uchar_1 = OpConstant %uchar 1 -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint -%_ptr_StorageBuffer_uchar = OpTypePointer StorageBuffer %uchar - %uint_1 = OpConstant %uint 1 - %uint_3 = OpConstant %uint 3 - %uint_264 = OpConstant %uint 264 - %uint_72 = OpConstant %uint 72 - %uint_2 = OpConstant %uint 2 - %uint_12 = OpConstant %uint 12 - %6 = OpVariable %_ptr_Workgroup__arr_uchar_uint_1024 Workgroup - %10 = OpVariable %_ptr_PushConstant__struct_8 PushConstant -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input - %19 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize - %23 = OpVariable %_ptr_StorageBuffer__struct_21 StorageBuffer - %27 = OpVariable %_ptr_StorageBuffer__struct_25 StorageBuffer - %28 = OpVariable %_ptr_StorageBuffer__struct_25 StorageBuffer - %31 = OpFunction %void None %30 - %32 = OpLabel - %35 = OpAccessChain %_ptr_StorageBuffer_uint %27 %uint_0 %uint_0 - %36 = OpAccessChain %_ptr_StorageBuffer_uint %28 %uint_0 %uint_0 - %37 = OpLoad %uint %36 - %39 = OpINotEqual %bool %37 %uint_0 - OpSelectionMerge %74 None - OpBranchConditional %39 %42 %74 - %42 = OpLabel - %43 = OpPhi %uint %67 %42 %uint_0 %32 - %45 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %46 = OpLoad %uint %45 - %47 = OpIAdd %uint %46 %43 - %49 = OpBitwiseAnd %uint %47 %uint_1023 - %51 = OpAccessChain %_ptr_Workgroup_uchar %6 %49 - %52 = OpLoad %uchar %51 - %54 = OpIAdd %uchar %52 %uchar_1 - OpStore %51 %54 - %55 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %56 = OpLoad %uint %55 - %58 = OpAccessChain %_ptr_PushConstant_uint %10 %uint_0 %uint_0 - %59 = OpLoad %uint %58 - %60 = OpIAdd %uint %56 %43 - %61 = OpIAdd %uint %60 %59 - %62 = OpLoad %uint %35 - %63 = OpUMod %uint %61 %62 - %65 = OpAccessChain %_ptr_StorageBuffer_uchar %23 %uint_0 %63 - OpStore %65 %54 - %67 = OpIAdd %uint %43 %uint_1 - %68 = OpLoad %uint %36 - %69 = OpUGreaterThanEqual %bool %67 %68 - OpLoopMerge %72 %42 None - OpBranchConditional %69 %72 %42 - %72 = OpLabel - OpBranch %74 - %74 = OpLabel - OpReturn - OpFunctionEnd - %75 = OpFunction %void None %30 - %76 = OpLabel - %77 = OpAccessChain %_ptr_StorageBuffer_uint %27 %uint_0 %uint_0 - %78 = OpAccessChain %_ptr_StorageBuffer_uint %28 %uint_0 %uint_0 - %79 = OpLoad %uint %78 - %80 = OpINotEqual %bool %79 %uint_0 - OpSelectionMerge %110 None - OpBranchConditional %80 %83 %110 - %83 = OpLabel - %84 = OpPhi %uint %103 %83 %uint_0 %76 - %85 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %86 = OpLoad %uint %85 - %87 = OpIAdd %uint %86 %84 - %88 = OpBitwiseAnd %uint %87 %uint_1023 - %89 = OpAccessChain %_ptr_Workgroup_uchar %6 %88 - %90 = OpLoad %uchar %89 - %91 = OpIAdd %uchar %90 %uchar_1 - OpStore %89 %91 - %92 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %93 = OpLoad %uint %92 - %94 = OpAccessChain %_ptr_PushConstant_uint %10 %uint_0 %uint_0 - %95 = OpLoad %uint %94 - %96 = OpIAdd %uint %93 %84 - %97 = OpIAdd %uint %96 %95 - %98 = OpLoad %uint %77 - %99 = OpUMod %uint %97 %98 - %100 = OpAccessChain %_ptr_StorageBuffer_uchar %23 %uint_0 %99 - OpStore %100 %91 - OpControlBarrier %uint_3 %uint_3 %uint_264 - %103 = OpIAdd %uint %84 %uint_1 - %104 = OpLoad %uint %78 - %105 = OpUGreaterThanEqual %bool %103 %104 - OpLoopMerge %108 %83 None - OpBranchConditional %105 %108 %83 - %108 = OpLabel - OpBranch %110 - %110 = OpLabel - OpReturn - OpFunctionEnd - %111 = OpFunction %void None %30 - %112 = OpLabel - %113 = OpAccessChain %_ptr_StorageBuffer_uint %27 %uint_0 %uint_0 - %114 = OpAccessChain %_ptr_StorageBuffer_uint %28 %uint_0 %uint_0 - %115 = OpLoad %uint %114 - %116 = OpINotEqual %bool %115 %uint_0 - OpSelectionMerge %145 None - OpBranchConditional %116 %119 %145 - %119 = OpLabel - %120 = OpPhi %uint %138 %119 %uint_0 %112 - %121 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %122 = OpLoad %uint %121 - %123 = OpIAdd %uint %122 %120 - %124 = OpBitwiseAnd %uint %123 %uint_1023 - %125 = OpAccessChain %_ptr_Workgroup_uchar %6 %124 - %126 = OpLoad %uchar %125 - %127 = OpIAdd %uchar %126 %uchar_1 - OpStore %125 %127 - %128 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %129 = OpLoad %uint %128 - %130 = OpAccessChain %_ptr_PushConstant_uint %10 %uint_0 %uint_0 - %131 = OpLoad %uint %130 - %132 = OpIAdd %uint %129 %120 - %133 = OpIAdd %uint %132 %131 - %134 = OpLoad %uint %113 - %135 = OpUMod %uint %133 %134 - %136 = OpAccessChain %_ptr_StorageBuffer_uchar %23 %uint_0 %135 - OpStore %136 %127 - OpControlBarrier %uint_3 %uint_3 %uint_72 - %138 = OpIAdd %uint %120 %uint_1 - %139 = OpLoad %uint %114 - %140 = OpUGreaterThanEqual %bool %138 %139 - OpLoopMerge %143 %119 None - OpBranchConditional %140 %143 %119 - %143 = OpLabel - OpBranch %145 - %145 = OpLabel - OpReturn - OpFunctionEnd - %146 = OpFunction %void None %30 - %147 = OpLabel - %148 = OpAccessChain %_ptr_StorageBuffer_uint %27 %uint_0 %uint_0 - %149 = OpAccessChain %_ptr_StorageBuffer_uint %28 %uint_0 %uint_0 - %150 = OpLoad %uint %149 - %151 = OpINotEqual %bool %150 %uint_0 - OpSelectionMerge %180 None - OpBranchConditional %151 %154 %180 - %154 = OpLabel - %155 = OpPhi %uint %173 %154 %uint_0 %147 - %156 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %157 = OpLoad %uint %156 - %158 = OpIAdd %uint %157 %155 - %159 = OpBitwiseAnd %uint %158 %uint_1023 - %160 = OpAccessChain %_ptr_Workgroup_uchar %6 %159 - %161 = OpLoad %uchar %160 - %162 = OpIAdd %uchar %161 %uchar_1 - OpStore %160 %162 - %163 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %164 = OpLoad %uint %163 - %165 = OpAccessChain %_ptr_PushConstant_uint %10 %uint_0 %uint_0 - %166 = OpLoad %uint %165 - %167 = OpIAdd %uint %164 %155 - %168 = OpIAdd %uint %167 %166 - %169 = OpLoad %uint %148 - %170 = OpUMod %uint %168 %169 - %171 = OpAccessChain %_ptr_StorageBuffer_uchar %23 %uint_0 %170 - OpStore %171 %162 - OpControlBarrier %uint_2 %uint_2 %uint_264 - %173 = OpIAdd %uint %155 %uint_1 - %174 = OpLoad %uint %149 - %175 = OpUGreaterThanEqual %bool %173 %174 - OpLoopMerge %178 %154 None - OpBranchConditional %175 %178 %154 - %178 = OpLabel - OpBranch %180 - %180 = OpLabel - OpReturn - OpFunctionEnd - %181 = OpFunction %void None %30 - %182 = OpLabel - %183 = OpAccessChain %_ptr_StorageBuffer_uint %27 %uint_0 %uint_0 - %184 = OpAccessChain %_ptr_StorageBuffer_uint %28 %uint_0 %uint_0 - %185 = OpLoad %uint %184 - %186 = OpINotEqual %bool %185 %uint_0 - OpSelectionMerge %214 None - OpBranchConditional %186 %189 %214 - %189 = OpLabel - %190 = OpPhi %uint %207 %189 %uint_0 %182 - %191 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %192 = OpLoad %uint %191 - %193 = OpIAdd %uint %192 %190 - %194 = OpBitwiseAnd %uint %193 %uint_1023 - %195 = OpAccessChain %_ptr_Workgroup_uchar %6 %194 - %196 = OpLoad %uchar %195 - %197 = OpIAdd %uchar %196 %uchar_1 - OpStore %195 %197 - %198 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %199 = OpLoad %uint %198 - %200 = OpAccessChain %_ptr_PushConstant_uint %10 %uint_0 %uint_0 - %201 = OpLoad %uint %200 - %202 = OpIAdd %uint %199 %190 - %203 = OpIAdd %uint %202 %201 - %204 = OpLoad %uint %183 - %205 = OpUMod %uint %203 %204 - %206 = OpAccessChain %_ptr_StorageBuffer_uchar %23 %uint_0 %205 - OpStore %206 %197 - OpControlBarrier %uint_2 %uint_2 %uint_72 - %207 = OpIAdd %uint %190 %uint_1 - %208 = OpLoad %uint %184 - %209 = OpUGreaterThanEqual %bool %207 %208 - OpLoopMerge %212 %189 None - OpBranchConditional %209 %212 %189 - %212 = OpLabel - OpBranch %214 - %214 = OpLabel - OpReturn - OpFunctionEnd - %277 = OpExtInst %void %215 PushConstantRegionOffset %uint_0 %uint_12 - %218 = OpExtInst %void %215 Kernel %31 %216 %uint_3 %uint_0 %217 - %220 = OpExtInst %void %215 ArgumentInfo %219 - %221 = OpExtInst %void %215 ArgumentStorageBuffer %218 %uint_0 %uint_0 %uint_0 %220 - %223 = OpExtInst %void %215 ArgumentInfo %222 - %224 = OpExtInst %void %215 ArgumentStorageBuffer %218 %uint_1 %uint_0 %uint_1 %223 - %226 = OpExtInst %void %215 ArgumentInfo %225 - %227 = OpExtInst %void %215 ArgumentStorageBuffer %218 %uint_2 %uint_0 %uint_2 %226 - %230 = OpExtInst %void %215 Kernel %75 %228 %uint_3 %uint_0 %229 - %232 = OpExtInst %void %215 ArgumentInfo %231 - %233 = OpExtInst %void %215 ArgumentStorageBuffer %230 %uint_0 %uint_0 %uint_0 %232 - %235 = OpExtInst %void %215 ArgumentInfo %234 - %236 = OpExtInst %void %215 ArgumentStorageBuffer %230 %uint_1 %uint_0 %uint_1 %235 - %238 = OpExtInst %void %215 ArgumentInfo %237 - %239 = OpExtInst %void %215 ArgumentStorageBuffer %230 %uint_2 %uint_0 %uint_2 %238 - %242 = OpExtInst %void %215 Kernel %111 %240 %uint_3 %uint_0 %241 - %244 = OpExtInst %void %215 ArgumentInfo %243 - %245 = OpExtInst %void %215 ArgumentStorageBuffer %242 %uint_0 %uint_0 %uint_0 %244 - %247 = OpExtInst %void %215 ArgumentInfo %246 - %248 = OpExtInst %void %215 ArgumentStorageBuffer %242 %uint_1 %uint_0 %uint_1 %247 - %250 = OpExtInst %void %215 ArgumentInfo %249 - %251 = OpExtInst %void %215 ArgumentStorageBuffer %242 %uint_2 %uint_0 %uint_2 %250 - %254 = OpExtInst %void %215 Kernel %146 %252 %uint_3 %uint_0 %253 - %256 = OpExtInst %void %215 ArgumentInfo %255 - %257 = OpExtInst %void %215 ArgumentStorageBuffer %254 %uint_0 %uint_0 %uint_0 %256 - %259 = OpExtInst %void %215 ArgumentInfo %258 - %260 = OpExtInst %void %215 ArgumentStorageBuffer %254 %uint_1 %uint_0 %uint_1 %259 - %262 = OpExtInst %void %215 ArgumentInfo %261 - %263 = OpExtInst %void %215 ArgumentStorageBuffer %254 %uint_2 %uint_0 %uint_2 %262 - %266 = OpExtInst %void %215 Kernel %181 %264 %uint_3 %uint_0 %265 - %268 = OpExtInst %void %215 ArgumentInfo %267 - %269 = OpExtInst %void %215 ArgumentStorageBuffer %266 %uint_0 %uint_0 %uint_0 %268 - %271 = OpExtInst %void %215 ArgumentInfo %270 - %272 = OpExtInst %void %215 ArgumentStorageBuffer %266 %uint_1 %uint_0 %uint_1 %271 - %274 = OpExtInst %void %215 ArgumentInfo %273 - %275 = OpExtInst %void %215 ArgumentStorageBuffer %266 %uint_2 %uint_0 %uint_2 %274 - %278 = OpExtInst %void %215 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/rr-mem-device-scope-device.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/rr-mem-device-scope-device.spv.dis deleted file mode 100644 index 1e5053f29d..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/rr-mem-device-scope-device.spv.dis +++ /dev/null @@ -1,525 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 472 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %442 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %28 "run_test" %gl_LocalInvocationID %gl_WorkGroupID - OpSource OpenCL_C 200 - %443 = OpString "run_test" - %445 = OpString "non_atomic_test_locations" - %448 = OpString "atomic_test_locations" - %451 = OpString "read_results" - %454 = OpString "shuffled_workgroups" - %457 = OpString "_barrier" - %460 = OpString "scratchpad" - %463 = OpString "scratch_locations" - %466 = OpString "stress_params" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_16 0 Offset 0 - OpDecorate %_struct_16 Block - OpDecorate %18 DescriptorSet 0 - OpDecorate %18 Binding 0 - OpDecorate %19 DescriptorSet 0 - OpDecorate %19 Binding 1 - OpDecorate %20 DescriptorSet 0 - OpDecorate %20 Binding 2 - OpDecorate %21 DescriptorSet 0 - OpDecorate %21 Binding 3 - OpDecorate %22 DescriptorSet 0 - OpDecorate %22 Binding 4 - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 5 - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 6 - OpDecorate %25 DescriptorSet 0 - OpDecorate %25 Binding 7 - OpDecorate %6 SpecId 0 - OpDecorate %7 SpecId 1 - OpDecorate %8 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 - %6 = OpSpecConstant %uint 1 - %7 = OpSpecConstant %uint 1 - %8 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %6 %7 %8 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_16 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_16 = OpTypePointer StorageBuffer %_struct_16 - %void = OpTypeVoid - %27 = OpTypeFunction %void -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint - %uint_9 = OpConstant %uint 9 - %bool = OpTypeBool - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 - %uint_100 = OpConstant %uint 100 -%uint_4294967295 = OpConstant %uint 4294967295 - %uint_7 = OpConstant %uint 7 - %uint_10 = OpConstant %uint 10 - %uint_8 = OpConstant %uint 8 - %uint_4 = OpConstant %uint 4 - %uint_5 = OpConstant %uint 5 - %uint_6 = OpConstant %uint 6 - %uint_64 = OpConstant %uint 64 - %uint_1023 = OpConstant %uint 1023 - %false = OpConstantFalse %bool - %uint_68 = OpConstant %uint 68 - %uint_66 = OpConstant %uint 66 - %true = OpConstantTrue %bool - %441 = OpUndef %uint - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant - %11 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input -%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input - %18 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %19 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %20 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %21 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %22 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %25 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %28 = OpFunction %void None %27 - %29 = OpLabel - %32 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %uint_0 - %33 = OpAccessChain %_ptr_StorageBuffer_uint %25 %uint_0 %uint_0 - %35 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %36 = OpLoad %uint %35 - %38 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %39 = OpLoad %uint %38 - %40 = OpIAdd %uint %39 %36 - %41 = OpAccessChain %_ptr_StorageBuffer_uint %21 %uint_0 %40 - %42 = OpLoad %uint %41 - %44 = OpAccessChain %_ptr_StorageBuffer_uint %25 %uint_0 %uint_9 - %45 = OpLoad %uint %44 - %47 = OpUGreaterThanEqual %bool %42 %45 - OpSelectionMerge %204 None - OpBranchConditional %47 %50 %204 - %50 = OpLabel - %52 = OpAccessChain %_ptr_StorageBuffer_uint %25 %uint_0 %uint_1 - %53 = OpLoad %uint %52 - %54 = OpINotEqual %bool %53 %uint_0 - OpSelectionMerge %202 None - OpBranchConditional %54 %57 %202 - %57 = OpLabel - %59 = OpAccessChain %_ptr_StorageBuffer_uint %25 %uint_0 %uint_2 - %60 = OpLoad %uint %59 - %62 = OpAccessChain %_ptr_StorageBuffer_uint %25 %uint_0 %uint_3 - %63 = OpLoad %uint %62 - %64 = OpINotEqual %bool %60 %uint_0 - OpSelectionMerge %200 None - OpBranchConditional %64 %67 %200 - %67 = OpLabel - %68 = OpPhi %uint %195 %194 %uint_0 %57 - OpLoopMerge %198 %194 None - OpBranch %71 - %71 = OpLabel - %72 = OpSGreaterThanEqual %bool %63 %uint_2 - OpSelectionMerge %125 None - OpBranchConditional %72 %75 %125 - %75 = OpLabel - %76 = OpSGreaterThanEqual %bool %63 %uint_3 - OpSelectionMerge %99 None - OpBranchConditional %76 %79 %99 - %79 = OpLabel - %80 = OpIEqual %bool %63 %uint_3 - OpSelectionMerge %96 None - OpBranchConditional %80 %83 %96 - %83 = OpLabel - %84 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %85 = OpLoad %uint %84 - %86 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %87 = OpLoad %uint %86 - %88 = OpIAdd %uint %87 %85 - %89 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %88 - %90 = OpLoad %uint %89 - %91 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %90 - %92 = OpLoad %uint %91 - %94 = OpULessThanEqual %bool %92 %uint_100 - OpBranch %96 - %96 = OpLabel - %97 = OpPhi %bool %94 %83 %true %79 - OpBranch %99 - %99 = OpLabel - %100 = OpPhi %bool %97 %96 %false %75 - %101 = OpPhi %bool %false %96 %true %75 - OpSelectionMerge %122 None - OpBranchConditional %101 %104 %122 - %104 = OpLabel - %105 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %106 = OpLoad %uint %105 - %107 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %108 = OpLoad %uint %107 - %109 = OpIAdd %uint %108 %106 - %110 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %109 - %111 = OpLoad %uint %110 - %112 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %111 - %113 = OpLoad %uint %112 - %114 = OpULessThanEqual %bool %113 %uint_100 - OpSelectionMerge %119 None - OpBranchConditional %114 %117 %119 - %117 = OpLabel - OpStore %112 %68 - OpBranch %119 - %119 = OpLabel - %120 = OpPhi %bool %true %117 %100 %104 - OpBranch %122 - %122 = OpLabel - %123 = OpPhi %bool %120 %119 %100 %99 - OpBranch %125 - %125 = OpLabel - %126 = OpPhi %bool %123 %122 %false %71 - %127 = OpPhi %bool %false %122 %true %71 - OpSelectionMerge %187 None - OpBranchConditional %127 %130 %187 - %130 = OpLabel - %131 = OpSGreaterThanEqual %bool %63 %uint_1 - OpSelectionMerge %154 None - OpBranchConditional %131 %134 %154 - %134 = OpLabel - %135 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %136 = OpLoad %uint %135 - %137 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %138 = OpLoad %uint %137 - %139 = OpIAdd %uint %138 %136 - %140 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %139 - %141 = OpLoad %uint %140 - %142 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %141 - OpStore %142 %68 - %143 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %144 = OpLoad %uint %143 - %145 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %146 = OpLoad %uint %145 - %147 = OpIAdd %uint %146 %144 - %148 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %147 - %149 = OpLoad %uint %148 - %150 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %149 - %151 = OpLoad %uint %150 - %152 = OpULessThanEqual %bool %151 %uint_100 - OpBranch %154 - %154 = OpLabel - %155 = OpPhi %bool %152 %134 %126 %130 - %156 = OpPhi %bool %false %134 %true %130 - OpSelectionMerge %184 None - OpBranchConditional %156 %159 %184 - %159 = OpLabel - %160 = OpIEqual %bool %63 %uint_0 - OpSelectionMerge %182 None - OpBranchConditional %160 %163 %182 - %163 = OpLabel - %164 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %165 = OpLoad %uint %164 - %166 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %167 = OpLoad %uint %166 - %168 = OpIAdd %uint %167 %165 - %169 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %168 - %170 = OpLoad %uint %169 - %171 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %170 - OpStore %171 %68 - %172 = OpIAdd %uint %68 %uint_1 - %173 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %174 = OpLoad %uint %173 - %175 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %176 = OpLoad %uint %175 - %177 = OpIAdd %uint %176 %174 - %178 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %177 - %179 = OpLoad %uint %178 - %180 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %179 - OpStore %180 %172 - OpBranch %182 - %182 = OpLabel - OpBranch %184 - %184 = OpLabel - %185 = OpPhi %bool %true %182 %155 %154 - OpBranch %187 - %187 = OpLabel - %188 = OpPhi %bool %185 %184 %126 %125 - OpBranchConditional %188 %190 %194 - %190 = OpLabel - %191 = OpIAdd %uint %68 %uint_1 - %192 = OpUGreaterThanEqual %bool %191 %60 - OpBranch %194 - %194 = OpLabel - %195 = OpPhi %uint %191 %190 %441 %187 - %196 = OpPhi %bool %192 %190 %true %187 - OpBranchConditional %196 %198 %67 - %198 = OpLabel - OpBranch %200 - %200 = OpLabel - OpBranch %202 - %202 = OpLabel - OpBranch %204 - %204 = OpLabel - %205 = OpPhi %bool %false %202 %true %29 - OpSelectionMerge %437 None - OpBranchConditional %205 %208 %437 - %208 = OpLabel - %209 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %210 = OpCompositeExtract %uint %209 0 - %211 = OpIMul %uint %210 %45 - %212 = OpIMul %uint %210 %42 - %213 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %214 = OpLoad %uint %213 - %215 = OpIAdd %uint %212 %214 - %216 = OpIAdd %uint %42 %uint_1 - %218 = OpIAdd %uint %45 %uint_4294967295 - %219 = OpUMod %uint %214 %218 - %220 = OpIAdd %uint %216 %219 - %221 = OpUMod %uint %220 %45 - %222 = OpIMul %uint %221 %210 - %224 = OpAccessChain %_ptr_StorageBuffer_uint %25 %uint_0 %uint_7 - %225 = OpLoad %uint %224 - %226 = OpIMul %uint %225 %214 - %227 = OpUMod %uint %226 %210 - %228 = OpIAdd %uint %227 %222 - %230 = OpAccessChain %_ptr_StorageBuffer_uint %25 %uint_0 %uint_10 - %231 = OpLoad %uint %230 - %232 = OpIMul %uint %231 %215 - %233 = OpIMul %uint %228 %231 - %235 = OpAccessChain %_ptr_StorageBuffer_uint %25 %uint_0 %uint_8 - %236 = OpLoad %uint %235 - %237 = OpIMul %uint %236 %228 - %238 = OpUMod %uint %237 %211 - %239 = OpIMul %uint %238 %231 - %241 = OpAccessChain %_ptr_StorageBuffer_uint %25 %uint_0 %uint_4 - %242 = OpLoad %uint %241 - %243 = OpINotEqual %bool %242 %uint_0 - OpSelectionMerge %390 None - OpBranchConditional %243 %246 %390 - %246 = OpLabel - %248 = OpAccessChain %_ptr_StorageBuffer_uint %25 %uint_0 %uint_5 - %249 = OpLoad %uint %248 - %251 = OpAccessChain %_ptr_StorageBuffer_uint %25 %uint_0 %uint_6 - %252 = OpLoad %uint %251 - %253 = OpINotEqual %bool %249 %uint_0 - OpSelectionMerge %388 None - OpBranchConditional %253 %256 %388 - %256 = OpLabel - %257 = OpPhi %uint %383 %382 %uint_0 %246 - OpLoopMerge %386 %382 None - OpBranch %260 - %260 = OpLabel - %261 = OpSGreaterThanEqual %bool %252 %uint_2 - OpSelectionMerge %313 None - OpBranchConditional %261 %264 %313 - %264 = OpLabel - %265 = OpSGreaterThanEqual %bool %252 %uint_3 - OpSelectionMerge %287 None - OpBranchConditional %265 %268 %287 - %268 = OpLabel - %269 = OpIEqual %bool %252 %uint_3 - OpSelectionMerge %284 None - OpBranchConditional %269 %272 %284 - %272 = OpLabel - %273 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %274 = OpLoad %uint %273 - %275 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %276 = OpLoad %uint %275 - %277 = OpIAdd %uint %276 %274 - %278 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %277 - %279 = OpLoad %uint %278 - %280 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %279 - %281 = OpLoad %uint %280 - %282 = OpULessThanEqual %bool %281 %uint_100 - OpBranch %284 - %284 = OpLabel - %285 = OpPhi %bool %282 %272 %true %268 - OpBranch %287 - %287 = OpLabel - %288 = OpPhi %bool %285 %284 %false %264 - %289 = OpPhi %bool %false %284 %true %264 - OpSelectionMerge %310 None - OpBranchConditional %289 %292 %310 - %292 = OpLabel - %293 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %294 = OpLoad %uint %293 - %295 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %296 = OpLoad %uint %295 - %297 = OpIAdd %uint %296 %294 - %298 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %297 - %299 = OpLoad %uint %298 - %300 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %299 - %301 = OpLoad %uint %300 - %302 = OpULessThanEqual %bool %301 %uint_100 - OpSelectionMerge %307 None - OpBranchConditional %302 %305 %307 - %305 = OpLabel - OpStore %300 %257 - OpBranch %307 - %307 = OpLabel - %308 = OpPhi %bool %true %305 %288 %292 - OpBranch %310 - %310 = OpLabel - %311 = OpPhi %bool %308 %307 %288 %287 - OpBranch %313 - %313 = OpLabel - %314 = OpPhi %bool %311 %310 %false %260 - %315 = OpPhi %bool %false %310 %true %260 - OpSelectionMerge %375 None - OpBranchConditional %315 %318 %375 - %318 = OpLabel - %319 = OpSGreaterThanEqual %bool %252 %uint_1 - OpSelectionMerge %342 None - OpBranchConditional %319 %322 %342 - %322 = OpLabel - %323 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %324 = OpLoad %uint %323 - %325 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %326 = OpLoad %uint %325 - %327 = OpIAdd %uint %326 %324 - %328 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %327 - %329 = OpLoad %uint %328 - %330 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %329 - OpStore %330 %257 - %331 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %332 = OpLoad %uint %331 - %333 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %334 = OpLoad %uint %333 - %335 = OpIAdd %uint %334 %332 - %336 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %335 - %337 = OpLoad %uint %336 - %338 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %337 - %339 = OpLoad %uint %338 - %340 = OpULessThanEqual %bool %339 %uint_100 - OpBranch %342 - %342 = OpLabel - %343 = OpPhi %bool %340 %322 %314 %318 - %344 = OpPhi %bool %false %322 %true %318 - OpSelectionMerge %372 None - OpBranchConditional %344 %347 %372 - %347 = OpLabel - %348 = OpIEqual %bool %252 %uint_0 - OpSelectionMerge %370 None - OpBranchConditional %348 %351 %370 - %351 = OpLabel - %352 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %353 = OpLoad %uint %352 - %354 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %355 = OpLoad %uint %354 - %356 = OpIAdd %uint %355 %353 - %357 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %356 - %358 = OpLoad %uint %357 - %359 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %358 - OpStore %359 %257 - %360 = OpIAdd %uint %257 %uint_1 - %361 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %362 = OpLoad %uint %361 - %363 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %364 = OpLoad %uint %363 - %365 = OpIAdd %uint %364 %362 - %366 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %365 - %367 = OpLoad %uint %366 - %368 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %367 - OpStore %368 %360 - OpBranch %370 - %370 = OpLabel - OpBranch %372 - %372 = OpLabel - %373 = OpPhi %bool %true %370 %343 %342 - OpBranch %375 - %375 = OpLabel - %376 = OpPhi %bool %373 %372 %314 %313 - OpBranchConditional %376 %378 %382 - %378 = OpLabel - %379 = OpIAdd %uint %257 %uint_1 - %380 = OpUGreaterThanEqual %bool %379 %249 - OpBranch %382 - %382 = OpLabel - %383 = OpPhi %uint %379 %378 %441 %375 - %384 = OpPhi %bool %380 %378 %true %375 - OpBranchConditional %384 %386 %256 - %386 = OpLabel - OpBranch %388 - %388 = OpLabel - OpBranch %390 - %390 = OpLabel - %391 = OpLoad %uint %33 - %392 = OpINotEqual %bool %391 %uint_0 - OpSelectionMerge %419 None - OpBranchConditional %392 %395 %419 - %395 = OpLabel - %396 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %397 = OpCompositeExtract %uint %396 0 - %399 = OpAtomicIAdd %uint %32 %uint_1 %uint_64 %uint_1 - %400 = OpULessThan %bool %399 %397 - OpSelectionMerge %417 None - OpBranchConditional %400 %403 %417 - %403 = OpLabel - %404 = OpPhi %uint %406 %403 %uint_0 %395 - %405 = OpAtomicLoad %uint %32 %uint_1 %uint_64 - %406 = OpIAdd %uint %404 %uint_1 - %408 = OpULessThan %bool %404 %uint_1023 - %409 = OpULessThan %bool %405 %397 - %411 = OpSelect %bool %408 %409 %false - %412 = OpLogicalNot %bool %411 - OpLoopMerge %415 %403 None - OpBranchConditional %412 %415 %403 - %415 = OpLabel - OpBranch %417 - %417 = OpLabel - OpBranch %419 - %419 = OpLabel - %420 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %232 - OpStore %420 %uint_1 - %421 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %232 - OpAtomicStore %421 %uint_1 %uint_68 %uint_1 - %423 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %233 - OpStore %423 %uint_2 - %424 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %233 - %426 = OpAtomicLoad %uint %424 %uint_1 %uint_66 - %427 = OpLoad %uint %423 - %428 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %239 - %429 = OpLoad %uint %428 - %430 = OpIMul %uint %228 %uint_3 - %431 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_0 %430 - OpStore %431 %426 - %432 = OpIAdd %uint %430 %uint_2 - %433 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_0 %432 - OpStore %433 %429 - %434 = OpIAdd %uint %430 %uint_1 - %435 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_0 %434 - OpStore %435 %427 - OpBranch %437 - %437 = OpLabel - OpBranch %439 - %439 = OpLabel - OpReturn - OpFunctionEnd - %470 = OpExtInst %void %442 PushConstantRegionGroupOffset %uint_0 %uint_12 - %444 = OpExtInst %void %442 Kernel %28 %443 %uint_8 - %446 = OpExtInst %void %442 ArgumentInfo %445 - %447 = OpExtInst %void %442 ArgumentStorageBuffer %444 %uint_0 %uint_0 %uint_0 %446 - %449 = OpExtInst %void %442 ArgumentInfo %448 - %450 = OpExtInst %void %442 ArgumentStorageBuffer %444 %uint_1 %uint_0 %uint_1 %449 - %452 = OpExtInst %void %442 ArgumentInfo %451 - %453 = OpExtInst %void %442 ArgumentStorageBuffer %444 %uint_2 %uint_0 %uint_2 %452 - %455 = OpExtInst %void %442 ArgumentInfo %454 - %456 = OpExtInst %void %442 ArgumentStorageBuffer %444 %uint_3 %uint_0 %uint_3 %455 - %458 = OpExtInst %void %442 ArgumentInfo %457 - %459 = OpExtInst %void %442 ArgumentStorageBuffer %444 %uint_4 %uint_0 %uint_4 %458 - %461 = OpExtInst %void %442 ArgumentInfo %460 - %462 = OpExtInst %void %442 ArgumentStorageBuffer %444 %uint_5 %uint_0 %uint_5 %461 - %464 = OpExtInst %void %442 ArgumentInfo %463 - %465 = OpExtInst %void %442 ArgumentStorageBuffer %444 %uint_6 %uint_0 %uint_6 %464 - %467 = OpExtInst %void %442 ArgumentInfo %466 - %468 = OpExtInst %void %442 ArgumentStorageBuffer %444 %uint_7 %uint_0 %uint_7 %467 - %471 = OpExtInst %void %442 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/rr-results.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/rr-results.spv.dis deleted file mode 100644 index 197a4a29fd..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/rr-results.spv.dis +++ /dev/null @@ -1,240 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 202 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %190 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %25 "check_results" %gl_GlobalInvocationID - OpSource OpenCL_C 200 - %191 = OpString "check_results" - %193 = OpString "read_results" - %196 = OpString "test_results" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_15 0 Offset 0 - OpDecorate %_struct_15 Block - OpMemberDecorate %_struct_18 0 Offset 0 - OpMemberDecorate %_struct_18 1 Offset 4 - OpMemberDecorate %_struct_18 2 Offset 8 - OpMemberDecorate %_struct_18 3 Offset 12 - OpMemberDecorate %_struct_18 4 Offset 16 - OpMemberDecorate %_struct_18 5 Offset 20 - OpMemberDecorate %_struct_18 6 Offset 24 - OpMemberDecorate %_struct_18 7 Offset 28 - OpMemberDecorate %_struct_18 8 Offset 32 - OpDecorate %_runtimearr__struct_18 ArrayStride 36 - OpMemberDecorate %_struct_20 0 Offset 0 - OpDecorate %_struct_20 Block - OpDecorate %17 DescriptorSet 0 - OpDecorate %17 Binding 0 - OpDecorate %22 DescriptorSet 0 - OpDecorate %22 Binding 1 - OpDecorate %8 SpecId 0 - OpDecorate %9 SpecId 1 - OpDecorate %10 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint - %8 = OpSpecConstant %uint 1 - %9 = OpSpecConstant %uint 1 - %10 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %8 %9 %10 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_15 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_15 = OpTypePointer StorageBuffer %_struct_15 - %_struct_18 = OpTypeStruct %uint %uint %uint %uint %uint %uint %uint %uint %uint -%_runtimearr__struct_18 = OpTypeRuntimeArray %_struct_18 - %_struct_20 = OpTypeStruct %_runtimearr__struct_18 -%_ptr_StorageBuffer__struct_20 = OpTypePointer StorageBuffer %_struct_20 - %void = OpTypeVoid - %24 = OpTypeFunction %void -%_ptr_Input_uint = OpTypePointer Input %uint - %uint_0 = OpConstant %uint 0 -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint - %uint_3 = OpConstant %uint 3 -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_1 = OpConstant %uint 1 - %uint_66 = OpConstant %uint 66 - %uint_2 = OpConstant %uint 2 - %bool = OpTypeBool - %false = OpConstantFalse %bool - %uint_8 = OpConstant %uint 8 - %uint_72 = OpConstant %uint 72 - %uint_7 = OpConstant %uint 7 - %uint_6 = OpConstant %uint 6 - %uint_5 = OpConstant %uint 5 - %uint_4 = OpConstant %uint 4 - %true = OpConstantTrue %bool - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input - %13 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize - %17 = OpVariable %_ptr_StorageBuffer__struct_15 StorageBuffer - %22 = OpVariable %_ptr_StorageBuffer__struct_20 StorageBuffer - %25 = OpFunction %void None %24 - %26 = OpLabel - %29 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %30 = OpLoad %uint %29 - %32 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %33 = OpLoad %uint %32 - %34 = OpIAdd %uint %33 %30 - %36 = OpIMul %uint %34 %uint_3 - %38 = OpAccessChain %_ptr_StorageBuffer_uint %17 %uint_0 %36 - %41 = OpAtomicLoad %uint %38 %uint_1 %uint_66 - %42 = OpIAdd %uint %36 %uint_1 - %43 = OpAccessChain %_ptr_StorageBuffer_uint %17 %uint_0 %42 - %44 = OpAtomicLoad %uint %43 %uint_1 %uint_66 - %46 = OpIAdd %uint %36 %uint_2 - %47 = OpAccessChain %_ptr_StorageBuffer_uint %17 %uint_0 %46 - %48 = OpAtomicLoad %uint %47 %uint_1 %uint_66 - %50 = OpIEqual %bool %41 %uint_1 - %51 = OpIEqual %bool %44 %uint_2 - %53 = OpSelect %bool %50 %51 %false - %54 = OpIEqual %bool %48 %uint_2 - %55 = OpSelect %bool %53 %54 %false - %56 = OpLogicalNot %bool %55 - OpSelectionMerge %180 None - OpBranchConditional %56 %59 %180 - %59 = OpLabel - %60 = OpIEqual %bool %41 %uint_0 - %61 = OpSelect %bool %60 %51 %false - %62 = OpSelect %bool %61 %54 %false - %63 = OpLogicalNot %bool %62 - OpSelectionMerge %170 None - OpBranchConditional %63 %66 %170 - %66 = OpLabel - %67 = OpIEqual %bool %44 %uint_1 - %68 = OpSelect %bool %50 %67 %false - %69 = OpIEqual %bool %48 %uint_1 - %70 = OpSelect %bool %68 %69 %false - %71 = OpLogicalNot %bool %70 - OpSelectionMerge %160 None - OpBranchConditional %71 %74 %160 - %74 = OpLabel - %75 = OpSelect %bool %60 %67 %false - %76 = OpSelect %bool %75 %69 %false - %77 = OpLogicalNot %bool %76 - OpSelectionMerge %150 None - OpBranchConditional %77 %80 %150 - %80 = OpLabel - %81 = OpSelect %bool %61 %69 %false - %82 = OpLogicalNot %bool %81 - OpSelectionMerge %139 None - OpBranchConditional %82 %85 %139 - %85 = OpLabel - %86 = OpSelect %bool %75 %54 %false - %87 = OpLogicalNot %bool %86 - OpSelectionMerge %128 None - OpBranchConditional %87 %90 %128 - %90 = OpLabel - %91 = OpSelect %bool %53 %69 %false - %92 = OpLogicalNot %bool %91 - OpSelectionMerge %117 None - OpBranchConditional %92 %95 %117 - %95 = OpLabel - %96 = OpSelect %bool %68 %54 %false - %97 = OpLogicalNot %bool %96 - OpSelectionMerge %106 None - OpBranchConditional %97 %100 %106 - %100 = OpLabel - %102 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %uint_0 %uint_8 - %104 = OpAtomicIAdd %uint %102 %uint_1 %uint_72 %uint_1 - OpBranch %106 - %106 = OpLabel - %107 = OpPhi %bool %false %100 %true %95 - OpSelectionMerge %115 None - OpBranchConditional %107 %110 %115 - %110 = OpLabel - %112 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %uint_0 %uint_7 - %113 = OpAtomicIAdd %uint %112 %uint_1 %uint_72 %uint_1 - OpBranch %115 - %115 = OpLabel - OpBranch %117 - %117 = OpLabel - %118 = OpPhi %bool %false %115 %true %90 - OpSelectionMerge %126 None - OpBranchConditional %118 %121 %126 - %121 = OpLabel - %123 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %uint_0 %uint_6 - %124 = OpAtomicIAdd %uint %123 %uint_1 %uint_72 %uint_1 - OpBranch %126 - %126 = OpLabel - OpBranch %128 - %128 = OpLabel - %129 = OpPhi %bool %false %126 %true %85 - OpSelectionMerge %137 None - OpBranchConditional %129 %132 %137 - %132 = OpLabel - %134 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %uint_0 %uint_5 - %135 = OpAtomicIAdd %uint %134 %uint_1 %uint_72 %uint_1 - OpBranch %137 - %137 = OpLabel - OpBranch %139 - %139 = OpLabel - %140 = OpPhi %bool %false %137 %true %80 - OpSelectionMerge %148 None - OpBranchConditional %140 %143 %148 - %143 = OpLabel - %145 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %uint_0 %uint_4 - %146 = OpAtomicIAdd %uint %145 %uint_1 %uint_72 %uint_1 - OpBranch %148 - %148 = OpLabel - OpBranch %150 - %150 = OpLabel - %151 = OpPhi %bool %false %148 %true %74 - OpSelectionMerge %158 None - OpBranchConditional %151 %154 %158 - %154 = OpLabel - %155 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %uint_0 %uint_3 - %156 = OpAtomicIAdd %uint %155 %uint_1 %uint_72 %uint_1 - OpBranch %158 - %158 = OpLabel - OpBranch %160 - %160 = OpLabel - %161 = OpPhi %bool %false %158 %true %66 - OpSelectionMerge %168 None - OpBranchConditional %161 %164 %168 - %164 = OpLabel - %165 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %uint_0 %uint_2 - %166 = OpAtomicIAdd %uint %165 %uint_1 %uint_72 %uint_1 - OpBranch %168 - %168 = OpLabel - OpBranch %170 - %170 = OpLabel - %171 = OpPhi %bool %false %168 %true %59 - OpSelectionMerge %178 None - OpBranchConditional %171 %174 %178 - %174 = OpLabel - %175 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %uint_0 %uint_1 - %176 = OpAtomicIAdd %uint %175 %uint_1 %uint_72 %uint_1 - OpBranch %178 - %178 = OpLabel - OpBranch %180 - %180 = OpLabel - %181 = OpPhi %bool %false %178 %true %26 - OpSelectionMerge %188 None - OpBranchConditional %181 %184 %188 - %184 = OpLabel - %185 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %uint_0 %uint_0 - %186 = OpAtomicIAdd %uint %185 %uint_1 %uint_72 %uint_1 - OpBranch %188 - %188 = OpLabel - OpReturn - OpFunctionEnd - %200 = OpExtInst %void %190 PushConstantRegionOffset %uint_0 %uint_12 - %192 = OpExtInst %void %190 Kernel %25 %191 %uint_3 - %194 = OpExtInst %void %190 ArgumentInfo %193 - %195 = OpExtInst %void %190 ArgumentStorageBuffer %192 %uint_0 %uint_0 %uint_0 %194 - %197 = OpExtInst %void %190 ArgumentInfo %196 - %198 = OpExtInst %void %190 ArgumentStorageBuffer %192 %uint_1 %uint_0 %uint_1 %197 - %201 = OpExtInst %void %190 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/shader.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/shader.spv.dis deleted file mode 100644 index 9b73e6741f..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/shader.spv.dis +++ /dev/null @@ -1,123 +0,0 @@ -; Magic: 0x07230203 (SPIR-V) -; Version: 0x00010000 (Version: 1.0.0) -; Generator: 0x00080001 (Khronos Glslang Reference Front End; 1) -; Bound: 63 -; Schema: 0 - - OpCapability Shader - %1 = OpExtInstImport "GLSL.std.450" - OpMemoryModel Logical GLSL450 - OpEntryPoint Fragment %4 "main" %31 %33 %42 %57 - OpExecutionMode %4 OriginLowerLeft - -; Debug information - OpSource GLSL 450 - OpName %4 "main" - OpName %9 "scale" - OpName %17 "S" - OpMemberName %17 0 "b" - OpMemberName %17 1 "v" - OpMemberName %17 2 "i" - OpName %18 "blockName" - OpMemberName %18 0 "s" - OpMemberName %18 1 "cond" - OpName %20 "" - OpName %31 "color" - OpName %33 "color1" - OpName %42 "color2" - OpName %48 "i" - OpName %57 "multiplier" - -; Annotations (non-debug) - OpDecorate %15 ArrayStride 16 - OpMemberDecorate %17 0 Offset 0 - OpMemberDecorate %17 1 Offset 16 - OpMemberDecorate %17 2 Offset 96 - OpMemberDecorate %18 0 Offset 0 - OpMemberDecorate %18 1 Offset 112 - OpDecorate %18 Block - OpDecorate %20 DescriptorSet 0 - OpDecorate %42 NoPerspective - -; All types, variables, and constants - %2 = OpTypeVoid - %3 = OpTypeFunction %2 ; void () - %6 = OpTypeFloat 32 ; 32-bit float - %7 = OpTypeVector %6 4 ; vec4 - %8 = OpTypePointer Function %7 ; function-local vec4* - %10 = OpConstant %6 1 - %11 = OpConstant %6 2 - %12 = OpConstantComposite %7 %10 %10 %11 %10 ; vec4(1.0, 1.0, 2.0, 1.0) - %13 = OpTypeInt 32 0 ; 32-bit int, sign-less - %14 = OpConstant %13 5 - %15 = OpTypeArray %7 %14 - %16 = OpTypeInt 32 1 - %17 = OpTypeStruct %13 %15 %16 - %18 = OpTypeStruct %17 %13 - %19 = OpTypePointer Uniform %18 - %20 = OpVariable %19 Uniform - %21 = OpConstant %16 1 - %22 = OpTypePointer Uniform %13 - %25 = OpTypeBool - %26 = OpConstant %13 0 - %30 = OpTypePointer Output %7 - %31 = OpVariable %30 Output - %32 = OpTypePointer Input %7 - %33 = OpVariable %32 Input - %35 = OpConstant %16 0 - %36 = OpConstant %16 2 - %37 = OpTypePointer Uniform %7 - %42 = OpVariable %32 Input - %47 = OpTypePointer Function %16 - %55 = OpConstant %16 4 - %57 = OpVariable %32 Input - -; All functions - %4 = OpFunction %2 None %3 ; main() - %5 = OpLabel - %9 = OpVariable %8 Function - %48 = OpVariable %47 Function - OpStore %9 %12 - %23 = OpAccessChain %22 %20 %21 ; location of cond - %24 = OpLoad %13 %23 ; load 32-bit int from cond - %27 = OpINotEqual %25 %24 %26 ; convert to bool - OpSelectionMerge %29 None ; structured if - OpBranchConditional %27 %28 %41 ; if cond - %28 = OpLabel ; then - %34 = OpLoad %7 %33 - %38 = OpAccessChain %37 %20 %35 %21 %36 ; s.v[2] - %39 = OpLoad %7 %38 - %40 = OpFAdd %7 %34 %39 - OpStore %31 %40 - OpBranch %29 - %41 = OpLabel ; else - %43 = OpLoad %7 %42 - %44 = OpExtInst %7 %1 Sqrt %43 ; extended instruction sqrt - %45 = OpLoad %7 %9 - %46 = OpFMul %7 %44 %45 - OpStore %31 %46 - OpBranch %29 - %29 = OpLabel ; endif - OpStore %48 %35 - OpBranch %49 - %49 = OpLabel - OpLoopMerge %51 %52 None ; structured loop - OpBranch %53 - %53 = OpLabel - %54 = OpLoad %16 %48 - %56 = OpSLessThan %25 %54 %55 ; i < 4 ? - OpBranchConditional %56 %50 %51 ; body or break - %50 = OpLabel ; body - %58 = OpLoad %7 %57 - %59 = OpLoad %7 %31 - %60 = OpFMul %7 %59 %58 - OpStore %31 %60 - OpBranch %52 - %52 = OpLabel ; continue target - %61 = OpLoad %16 %48 - %62 = OpIAdd %16 %61 %21 ; ++i - OpStore %48 %62 - OpBranch %49 ; loop back - %51 = OpLabel ; loop merge point - OpReturn - OpFunctionEnd \ No newline at end of file diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/store-buffer-acq-rel.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/store-buffer-acq-rel.spv.dis deleted file mode 100644 index 0aadd73012..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/store-buffer-acq-rel.spv.dis +++ /dev/null @@ -1,525 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 476 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %449 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %27 "litmus_test" %gl_LocalInvocationID %gl_WorkGroupID - OpSource OpenCL_C 200 - %450 = OpString "litmus_test" - %452 = OpString "test_locations" - %455 = OpString "read_results" - %458 = OpString "shuffled_workgroups" - %461 = OpString "barrier" - %464 = OpString "scratchpad" - %467 = OpString "scratch_locations" - %470 = OpString "stress_params" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_16 0 Offset 0 - OpDecorate %_struct_16 Block - OpDecorate %18 DescriptorSet 0 - OpDecorate %18 Binding 0 - OpDecorate %19 DescriptorSet 0 - OpDecorate %19 Binding 1 - OpDecorate %20 DescriptorSet 0 - OpDecorate %20 Binding 2 - OpDecorate %21 DescriptorSet 0 - OpDecorate %21 Binding 3 - OpDecorate %22 DescriptorSet 0 - OpDecorate %22 Binding 4 - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 5 - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 6 - OpDecorate %6 SpecId 0 - OpDecorate %7 SpecId 1 - OpDecorate %8 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 - %6 = OpSpecConstant %uint 1 - %7 = OpSpecConstant %uint 1 - %8 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %6 %7 %8 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_16 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_16 = OpTypePointer StorageBuffer %_struct_16 - %void = OpTypeVoid - %26 = OpTypeFunction %void -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint - %uint_9 = OpConstant %uint 9 - %bool = OpTypeBool - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 - %uint_100 = OpConstant %uint 100 -%uint_4294967295 = OpConstant %uint 4294967295 - %uint_7 = OpConstant %uint 7 - %uint_10 = OpConstant %uint 10 - %uint_8 = OpConstant %uint 8 - %uint_11 = OpConstant %uint 11 - %uint_4 = OpConstant %uint 4 - %uint_5 = OpConstant %uint 5 - %uint_6 = OpConstant %uint 6 - %uint_64 = OpConstant %uint 64 - %uint_1023 = OpConstant %uint 1023 - %false = OpConstantFalse %bool - %uint_68 = OpConstant %uint 68 - %uint_66 = OpConstant %uint 66 - %true = OpConstantTrue %bool - %448 = OpUndef %uint - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant - %11 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input -%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input - %18 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %19 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %20 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %21 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %22 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %27 = OpFunction %void None %26 - %28 = OpLabel - %31 = OpAccessChain %_ptr_StorageBuffer_uint %21 %uint_0 %uint_0 - %32 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_0 - %34 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %35 = OpLoad %uint %34 - %37 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %38 = OpLoad %uint %37 - %39 = OpIAdd %uint %38 %35 - %40 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_0 %39 - %41 = OpLoad %uint %40 - %43 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_9 - %44 = OpLoad %uint %43 - %46 = OpUGreaterThanEqual %bool %41 %44 - OpSelectionMerge %203 None - OpBranchConditional %46 %49 %203 - %49 = OpLabel - %51 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_1 - %52 = OpLoad %uint %51 - %53 = OpINotEqual %bool %52 %uint_0 - OpSelectionMerge %201 None - OpBranchConditional %53 %56 %201 - %56 = OpLabel - %58 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_2 - %59 = OpLoad %uint %58 - %61 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_3 - %62 = OpLoad %uint %61 - %63 = OpINotEqual %bool %59 %uint_0 - OpSelectionMerge %199 None - OpBranchConditional %63 %66 %199 - %66 = OpLabel - %67 = OpPhi %uint %194 %193 %uint_0 %56 - OpLoopMerge %197 %193 None - OpBranch %70 - %70 = OpLabel - %71 = OpSGreaterThanEqual %bool %62 %uint_2 - OpSelectionMerge %124 None - OpBranchConditional %71 %74 %124 - %74 = OpLabel - %75 = OpSGreaterThanEqual %bool %62 %uint_3 - OpSelectionMerge %98 None - OpBranchConditional %75 %78 %98 - %78 = OpLabel - %79 = OpIEqual %bool %62 %uint_3 - OpSelectionMerge %95 None - OpBranchConditional %79 %82 %95 - %82 = OpLabel - %83 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %84 = OpLoad %uint %83 - %85 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %86 = OpLoad %uint %85 - %87 = OpIAdd %uint %86 %84 - %88 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %87 - %89 = OpLoad %uint %88 - %90 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %89 - %91 = OpLoad %uint %90 - %93 = OpULessThanEqual %bool %91 %uint_100 - OpBranch %95 - %95 = OpLabel - %96 = OpPhi %bool %93 %82 %true %78 - OpBranch %98 - %98 = OpLabel - %99 = OpPhi %bool %96 %95 %false %74 - %100 = OpPhi %bool %false %95 %true %74 - OpSelectionMerge %121 None - OpBranchConditional %100 %103 %121 - %103 = OpLabel - %104 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %105 = OpLoad %uint %104 - %106 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %107 = OpLoad %uint %106 - %108 = OpIAdd %uint %107 %105 - %109 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %108 - %110 = OpLoad %uint %109 - %111 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %110 - %112 = OpLoad %uint %111 - %113 = OpULessThanEqual %bool %112 %uint_100 - OpSelectionMerge %118 None - OpBranchConditional %113 %116 %118 - %116 = OpLabel - OpStore %111 %67 - OpBranch %118 - %118 = OpLabel - %119 = OpPhi %bool %true %116 %99 %103 - OpBranch %121 - %121 = OpLabel - %122 = OpPhi %bool %119 %118 %99 %98 - OpBranch %124 - %124 = OpLabel - %125 = OpPhi %bool %122 %121 %false %70 - %126 = OpPhi %bool %false %121 %true %70 - OpSelectionMerge %186 None - OpBranchConditional %126 %129 %186 - %129 = OpLabel - %130 = OpSGreaterThanEqual %bool %62 %uint_1 - OpSelectionMerge %153 None - OpBranchConditional %130 %133 %153 - %133 = OpLabel - %134 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %135 = OpLoad %uint %134 - %136 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %137 = OpLoad %uint %136 - %138 = OpIAdd %uint %137 %135 - %139 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %138 - %140 = OpLoad %uint %139 - %141 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %140 - OpStore %141 %67 - %142 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %143 = OpLoad %uint %142 - %144 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %145 = OpLoad %uint %144 - %146 = OpIAdd %uint %145 %143 - %147 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %146 - %148 = OpLoad %uint %147 - %149 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %148 - %150 = OpLoad %uint %149 - %151 = OpULessThanEqual %bool %150 %uint_100 - OpBranch %153 - %153 = OpLabel - %154 = OpPhi %bool %151 %133 %125 %129 - %155 = OpPhi %bool %false %133 %true %129 - OpSelectionMerge %183 None - OpBranchConditional %155 %158 %183 - %158 = OpLabel - %159 = OpIEqual %bool %62 %uint_0 - OpSelectionMerge %181 None - OpBranchConditional %159 %162 %181 - %162 = OpLabel - %163 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %164 = OpLoad %uint %163 - %165 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %166 = OpLoad %uint %165 - %167 = OpIAdd %uint %166 %164 - %168 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %167 - %169 = OpLoad %uint %168 - %170 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %169 - OpStore %170 %67 - %171 = OpIAdd %uint %67 %uint_1 - %172 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %173 = OpLoad %uint %172 - %174 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %175 = OpLoad %uint %174 - %176 = OpIAdd %uint %175 %173 - %177 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %176 - %178 = OpLoad %uint %177 - %179 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %178 - OpStore %179 %171 - OpBranch %181 - %181 = OpLabel - OpBranch %183 - %183 = OpLabel - %184 = OpPhi %bool %true %181 %154 %153 - OpBranch %186 - %186 = OpLabel - %187 = OpPhi %bool %184 %183 %125 %124 - OpBranchConditional %187 %189 %193 - %189 = OpLabel - %190 = OpIAdd %uint %67 %uint_1 - %191 = OpUGreaterThanEqual %bool %190 %59 - OpBranch %193 - %193 = OpLabel - %194 = OpPhi %uint %190 %189 %448 %186 - %195 = OpPhi %bool %191 %189 %true %186 - OpBranchConditional %195 %197 %66 - %197 = OpLabel - OpBranch %199 - %199 = OpLabel - OpBranch %201 - %201 = OpLabel - OpBranch %203 - %203 = OpLabel - %204 = OpPhi %bool %false %201 %true %28 - OpSelectionMerge %444 None - OpBranchConditional %204 %207 %444 - %207 = OpLabel - %208 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %209 = OpCompositeExtract %uint %208 0 - %210 = OpIMul %uint %209 %44 - %211 = OpIMul %uint %209 %41 - %212 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %213 = OpLoad %uint %212 - %214 = OpIAdd %uint %211 %213 - %215 = OpIAdd %uint %41 %uint_1 - %217 = OpIAdd %uint %44 %uint_4294967295 - %218 = OpUMod %uint %213 %217 - %219 = OpIAdd %uint %215 %218 - %220 = OpUMod %uint %219 %44 - %221 = OpIMul %uint %220 %209 - %223 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_7 - %224 = OpLoad %uint %223 - %225 = OpIMul %uint %224 %213 - %226 = OpUMod %uint %225 %209 - %227 = OpIAdd %uint %226 %221 - %229 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %230 = OpLoad %uint %229 - %231 = OpShiftLeftLogical %uint %214 %uint_1 - %232 = OpIMul %uint %231 %230 - %234 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_8 - %235 = OpLoad %uint %234 - %236 = OpIMul %uint %235 %214 - %237 = OpUMod %uint %236 %210 - %238 = OpShiftLeftLogical %uint %230 %uint_1 - %239 = OpIMul %uint %238 %237 - %241 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_11 - %242 = OpLoad %uint %241 - %243 = OpIAdd %uint %239 %242 - %244 = OpIMul %uint %238 %227 - %245 = OpIMul %uint %235 %227 - %246 = OpUMod %uint %245 %210 - %247 = OpIMul %uint %238 %246 - %248 = OpIAdd %uint %247 %242 - %250 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_4 - %251 = OpLoad %uint %250 - %252 = OpINotEqual %bool %251 %uint_0 - OpSelectionMerge %399 None - OpBranchConditional %252 %255 %399 - %255 = OpLabel - %257 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_5 - %258 = OpLoad %uint %257 - %260 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_6 - %261 = OpLoad %uint %260 - %262 = OpINotEqual %bool %258 %uint_0 - OpSelectionMerge %397 None - OpBranchConditional %262 %265 %397 - %265 = OpLabel - %266 = OpPhi %uint %392 %391 %uint_0 %255 - OpLoopMerge %395 %391 None - OpBranch %269 - %269 = OpLabel - %270 = OpSGreaterThanEqual %bool %261 %uint_2 - OpSelectionMerge %322 None - OpBranchConditional %270 %273 %322 - %273 = OpLabel - %274 = OpSGreaterThanEqual %bool %261 %uint_3 - OpSelectionMerge %296 None - OpBranchConditional %274 %277 %296 - %277 = OpLabel - %278 = OpIEqual %bool %261 %uint_3 - OpSelectionMerge %293 None - OpBranchConditional %278 %281 %293 - %281 = OpLabel - %282 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %283 = OpLoad %uint %282 - %284 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %285 = OpLoad %uint %284 - %286 = OpIAdd %uint %285 %283 - %287 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %286 - %288 = OpLoad %uint %287 - %289 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %288 - %290 = OpLoad %uint %289 - %291 = OpULessThanEqual %bool %290 %uint_100 - OpBranch %293 - %293 = OpLabel - %294 = OpPhi %bool %291 %281 %true %277 - OpBranch %296 - %296 = OpLabel - %297 = OpPhi %bool %294 %293 %false %273 - %298 = OpPhi %bool %false %293 %true %273 - OpSelectionMerge %319 None - OpBranchConditional %298 %301 %319 - %301 = OpLabel - %302 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %303 = OpLoad %uint %302 - %304 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %305 = OpLoad %uint %304 - %306 = OpIAdd %uint %305 %303 - %307 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %306 - %308 = OpLoad %uint %307 - %309 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %308 - %310 = OpLoad %uint %309 - %311 = OpULessThanEqual %bool %310 %uint_100 - OpSelectionMerge %316 None - OpBranchConditional %311 %314 %316 - %314 = OpLabel - OpStore %309 %266 - OpBranch %316 - %316 = OpLabel - %317 = OpPhi %bool %true %314 %297 %301 - OpBranch %319 - %319 = OpLabel - %320 = OpPhi %bool %317 %316 %297 %296 - OpBranch %322 - %322 = OpLabel - %323 = OpPhi %bool %320 %319 %false %269 - %324 = OpPhi %bool %false %319 %true %269 - OpSelectionMerge %384 None - OpBranchConditional %324 %327 %384 - %327 = OpLabel - %328 = OpSGreaterThanEqual %bool %261 %uint_1 - OpSelectionMerge %351 None - OpBranchConditional %328 %331 %351 - %331 = OpLabel - %332 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %333 = OpLoad %uint %332 - %334 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %335 = OpLoad %uint %334 - %336 = OpIAdd %uint %335 %333 - %337 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %336 - %338 = OpLoad %uint %337 - %339 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %338 - OpStore %339 %266 - %340 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %341 = OpLoad %uint %340 - %342 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %343 = OpLoad %uint %342 - %344 = OpIAdd %uint %343 %341 - %345 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %344 - %346 = OpLoad %uint %345 - %347 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %346 - %348 = OpLoad %uint %347 - %349 = OpULessThanEqual %bool %348 %uint_100 - OpBranch %351 - %351 = OpLabel - %352 = OpPhi %bool %349 %331 %323 %327 - %353 = OpPhi %bool %false %331 %true %327 - OpSelectionMerge %381 None - OpBranchConditional %353 %356 %381 - %356 = OpLabel - %357 = OpIEqual %bool %261 %uint_0 - OpSelectionMerge %379 None - OpBranchConditional %357 %360 %379 - %360 = OpLabel - %361 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %362 = OpLoad %uint %361 - %363 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %364 = OpLoad %uint %363 - %365 = OpIAdd %uint %364 %362 - %366 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %365 - %367 = OpLoad %uint %366 - %368 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %367 - OpStore %368 %266 - %369 = OpIAdd %uint %266 %uint_1 - %370 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %371 = OpLoad %uint %370 - %372 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %373 = OpLoad %uint %372 - %374 = OpIAdd %uint %373 %371 - %375 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %374 - %376 = OpLoad %uint %375 - %377 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %376 - OpStore %377 %369 - OpBranch %379 - %379 = OpLabel - OpBranch %381 - %381 = OpLabel - %382 = OpPhi %bool %true %379 %352 %351 - OpBranch %384 - %384 = OpLabel - %385 = OpPhi %bool %382 %381 %323 %322 - OpBranchConditional %385 %387 %391 - %387 = OpLabel - %388 = OpIAdd %uint %266 %uint_1 - %389 = OpUGreaterThanEqual %bool %388 %258 - OpBranch %391 - %391 = OpLabel - %392 = OpPhi %uint %388 %387 %448 %384 - %393 = OpPhi %bool %389 %387 %true %384 - OpBranchConditional %393 %395 %265 - %395 = OpLabel - OpBranch %397 - %397 = OpLabel - OpBranch %399 - %399 = OpLabel - %400 = OpLoad %uint %32 - %401 = OpINotEqual %bool %400 %uint_0 - OpSelectionMerge %430 None - OpBranchConditional %401 %404 %430 - %404 = OpLabel - %405 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %406 = OpCompositeExtract %uint %405 0 - %407 = OpLoad %uint %43 - %408 = OpIMul %uint %406 %407 - %410 = OpAtomicIAdd %uint %31 %uint_1 %uint_64 %uint_1 - %411 = OpULessThan %bool %410 %408 - OpSelectionMerge %428 None - OpBranchConditional %411 %414 %428 - %414 = OpLabel - %415 = OpPhi %uint %417 %414 %uint_0 %404 - %416 = OpAtomicLoad %uint %31 %uint_1 %uint_64 - %417 = OpIAdd %uint %415 %uint_1 - %419 = OpULessThan %bool %415 %uint_1023 - %420 = OpULessThan %bool %416 %408 - %422 = OpSelect %bool %419 %420 %false - %423 = OpLogicalNot %bool %422 - OpLoopMerge %426 %414 None - OpBranchConditional %423 %426 %414 - %426 = OpLabel - OpBranch %428 - %428 = OpLabel - OpBranch %430 - %430 = OpLabel - %431 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %232 - OpAtomicStore %431 %uint_1 %uint_68 %uint_1 - %433 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %243 - %435 = OpAtomicLoad %uint %433 %uint_1 %uint_66 - %436 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %248 - OpAtomicStore %436 %uint_1 %uint_68 %uint_1 - %437 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %244 - %438 = OpAtomicLoad %uint %437 %uint_1 %uint_66 - %439 = OpShiftLeftLogical %uint %227 %uint_1 - %440 = OpBitwiseOr %uint %439 %uint_1 - %441 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %440 - OpAtomicStore %441 %uint_1 %uint_68 %438 - %442 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %231 - OpAtomicStore %442 %uint_1 %uint_68 %435 - OpBranch %444 - %444 = OpLabel - OpBranch %446 - %446 = OpLabel - OpReturn - OpFunctionEnd - %474 = OpExtInst %void %449 PushConstantRegionGroupOffset %uint_0 %uint_12 - %451 = OpExtInst %void %449 Kernel %27 %450 %uint_7 - %453 = OpExtInst %void %449 ArgumentInfo %452 - %454 = OpExtInst %void %449 ArgumentStorageBuffer %451 %uint_0 %uint_0 %uint_0 %453 - %456 = OpExtInst %void %449 ArgumentInfo %455 - %457 = OpExtInst %void %449 ArgumentStorageBuffer %451 %uint_1 %uint_0 %uint_1 %456 - %459 = OpExtInst %void %449 ArgumentInfo %458 - %460 = OpExtInst %void %449 ArgumentStorageBuffer %451 %uint_2 %uint_0 %uint_2 %459 - %462 = OpExtInst %void %449 ArgumentInfo %461 - %463 = OpExtInst %void %449 ArgumentStorageBuffer %451 %uint_3 %uint_0 %uint_3 %462 - %465 = OpExtInst %void %449 ArgumentInfo %464 - %466 = OpExtInst %void %449 ArgumentStorageBuffer %451 %uint_4 %uint_0 %uint_4 %465 - %468 = OpExtInst %void %449 ArgumentInfo %467 - %469 = OpExtInst %void %449 ArgumentStorageBuffer %451 %uint_5 %uint_0 %uint_5 %468 - %471 = OpExtInst %void %449 ArgumentInfo %470 - %472 = OpExtInst %void %449 ArgumentStorageBuffer %451 %uint_6 %uint_0 %uint_6 %471 - %475 = OpExtInst %void %449 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/store-buffer-results.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/store-buffer-results.spv.dis deleted file mode 100644 index 1fcb252ec2..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/store-buffer-results.spv.dis +++ /dev/null @@ -1,192 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 155 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %136 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %27 "litmus_test" %gl_GlobalInvocationID - OpSource OpenCL_C 200 - %137 = OpString "litmus_test" - %140 = OpString "test_locations" - %143 = OpString "read_results" - %146 = OpString "test_results" - %149 = OpString "stress_params" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_15 0 Offset 0 - OpDecorate %_struct_15 Block - OpMemberDecorate %_struct_19 0 Offset 0 - OpMemberDecorate %_struct_19 1 Offset 4 - OpMemberDecorate %_struct_19 2 Offset 8 - OpMemberDecorate %_struct_19 3 Offset 12 - OpDecorate %_runtimearr__struct_19 ArrayStride 16 - OpMemberDecorate %_struct_21 0 Offset 0 - OpDecorate %_struct_21 Block - OpDecorate %17 DescriptorSet 0 - OpDecorate %17 Binding 0 - OpDecorate %18 DescriptorSet 0 - OpDecorate %18 Binding 1 - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 2 - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 3 - OpDecorate %8 SpecId 0 - OpDecorate %9 SpecId 1 - OpDecorate %10 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint - %8 = OpSpecConstant %uint 1 - %9 = OpSpecConstant %uint 1 - %10 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %8 %9 %10 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_15 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_15 = OpTypePointer StorageBuffer %_struct_15 - %_struct_19 = OpTypeStruct %uint %uint %uint %uint -%_runtimearr__struct_19 = OpTypeRuntimeArray %_struct_19 - %_struct_21 = OpTypeStruct %_runtimearr__struct_19 -%_ptr_StorageBuffer__struct_21 = OpTypePointer StorageBuffer %_struct_21 - %void = OpTypeVoid - %26 = OpTypeFunction %void -%_ptr_Input_uint = OpTypePointer Input %uint - %uint_0 = OpConstant %uint 0 -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_10 = OpConstant %uint 10 - %uint_1 = OpConstant %uint 1 - %uint_66 = OpConstant %uint 66 - %uint_9 = OpConstant %uint 9 - %uint_8 = OpConstant %uint 8 - %uint_11 = OpConstant %uint 11 - %bool = OpTypeBool - %false = OpConstantFalse %bool - %uint_3 = OpConstant %uint 3 - %uint_72 = OpConstant %uint 72 - %uint_2 = OpConstant %uint 2 - %true = OpConstantTrue %bool - %uint_4 = OpConstant %uint 4 - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input - %13 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize - %17 = OpVariable %_ptr_StorageBuffer__struct_15 StorageBuffer - %18 = OpVariable %_ptr_StorageBuffer__struct_15 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_21 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_15 StorageBuffer - %27 = OpFunction %void None %26 - %28 = OpLabel - %31 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %32 = OpLoad %uint %31 - %34 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %35 = OpLoad %uint %34 - %36 = OpIAdd %uint %35 %32 - %39 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %40 = OpLoad %uint %39 - %42 = OpShiftLeftLogical %uint %40 %uint_1 - %43 = OpIMul %uint %42 %36 - %44 = OpAccessChain %_ptr_StorageBuffer_uint %17 %uint_0 %43 - %46 = OpAtomicLoad %uint %44 %uint_1 %uint_66 - %47 = OpShiftLeftLogical %uint %36 %uint_1 - %48 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %47 - %49 = OpAtomicLoad %uint %48 %uint_1 %uint_66 - %50 = OpBitwiseOr %uint %47 %uint_1 - %51 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %50 - %52 = OpAtomicLoad %uint %51 %uint_1 %uint_66 - %53 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %54 = OpCompositeExtract %uint %53 0 - %56 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_9 - %57 = OpLoad %uint %56 - %58 = OpIMul %uint %54 %57 - %60 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_8 - %61 = OpLoad %uint %60 - %62 = OpIMul %uint %61 %36 - %63 = OpUMod %uint %62 %58 - %64 = OpLoad %uint %39 - %65 = OpShiftLeftLogical %uint %63 %uint_1 - %66 = OpIMul %uint %65 %64 - %68 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_11 - %69 = OpLoad %uint %68 - %70 = OpIAdd %uint %66 %69 - %71 = OpAccessChain %_ptr_StorageBuffer_uint %17 %uint_0 %70 - %72 = OpAtomicLoad %uint %71 %uint_1 %uint_66 - %74 = OpIEqual %bool %49 %uint_1 - %75 = OpIEqual %bool %52 %uint_0 - %77 = OpSelect %bool %74 %75 %false - %78 = OpLogicalNot %bool %77 - OpSelectionMerge %126 None - OpBranchConditional %78 %81 %126 - %81 = OpLabel - %82 = OpIEqual %bool %49 %uint_0 - %83 = OpIEqual %bool %52 %uint_1 - %84 = OpSelect %bool %82 %83 %false - %85 = OpLogicalNot %bool %84 - OpSelectionMerge %116 None - OpBranchConditional %85 %88 %116 - %88 = OpLabel - %89 = OpSelect %bool %74 %83 %false - %90 = OpLogicalNot %bool %89 - OpSelectionMerge %105 None - OpBranchConditional %90 %93 %105 - %93 = OpLabel - %94 = OpSelect %bool %82 %75 %false - OpSelectionMerge %103 None - OpBranchConditional %94 %97 %103 - %97 = OpLabel - %99 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_3 - %101 = OpAtomicIAdd %uint %99 %uint_1 %uint_72 %uint_1 - OpBranch %103 - %103 = OpLabel - OpBranch %105 - %105 = OpLabel - %106 = OpPhi %bool %false %103 %true %88 - OpSelectionMerge %114 None - OpBranchConditional %106 %109 %114 - %109 = OpLabel - %111 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_2 - %112 = OpAtomicIAdd %uint %111 %uint_1 %uint_72 %uint_1 - OpBranch %114 - %114 = OpLabel - OpBranch %116 - %116 = OpLabel - %117 = OpPhi %bool %false %114 %true %81 - OpSelectionMerge %124 None - OpBranchConditional %117 %120 %124 - %120 = OpLabel - %121 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_1 - %122 = OpAtomicIAdd %uint %121 %uint_1 %uint_72 %uint_1 - OpBranch %124 - %124 = OpLabel - OpBranch %126 - %126 = OpLabel - %127 = OpPhi %bool %false %124 %true %28 - OpSelectionMerge %134 None - OpBranchConditional %127 %130 %134 - %130 = OpLabel - %131 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_0 - %132 = OpAtomicIAdd %uint %131 %uint_1 %uint_72 %uint_1 - OpBranch %134 - %134 = OpLabel - OpReturn - OpFunctionEnd - %153 = OpExtInst %void %136 PushConstantRegionOffset %uint_0 %uint_12 - %139 = OpExtInst %void %136 Kernel %27 %137 %uint_4 - %141 = OpExtInst %void %136 ArgumentInfo %140 - %142 = OpExtInst %void %136 ArgumentStorageBuffer %139 %uint_0 %uint_0 %uint_0 %141 - %144 = OpExtInst %void %136 ArgumentInfo %143 - %145 = OpExtInst %void %136 ArgumentStorageBuffer %139 %uint_1 %uint_0 %uint_1 %144 - %147 = OpExtInst %void %136 ArgumentInfo %146 - %148 = OpExtInst %void %136 ArgumentStorageBuffer %139 %uint_2 %uint_0 %uint_2 %147 - %150 = OpExtInst %void %136 ArgumentInfo %149 - %151 = OpExtInst %void %136 ArgumentStorageBuffer %139 %uint_3 %uint_0 %uint_3 %150 - %154 = OpExtInst %void %136 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/store-buffer-rmw-acq-rel.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/store-buffer-rmw-acq-rel.spv.dis deleted file mode 100644 index f37d646910..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/store-buffer-rmw-acq-rel.spv.dis +++ /dev/null @@ -1,525 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 477 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %450 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %27 "litmus_test" %gl_LocalInvocationID %gl_WorkGroupID - OpSource OpenCL_C 200 - %451 = OpString "litmus_test" - %453 = OpString "test_locations" - %456 = OpString "read_results" - %459 = OpString "shuffled_workgroups" - %462 = OpString "barrier" - %465 = OpString "scratchpad" - %468 = OpString "scratch_locations" - %471 = OpString "stress_params" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_16 0 Offset 0 - OpDecorate %_struct_16 Block - OpDecorate %18 DescriptorSet 0 - OpDecorate %18 Binding 0 - OpDecorate %19 DescriptorSet 0 - OpDecorate %19 Binding 1 - OpDecorate %20 DescriptorSet 0 - OpDecorate %20 Binding 2 - OpDecorate %21 DescriptorSet 0 - OpDecorate %21 Binding 3 - OpDecorate %22 DescriptorSet 0 - OpDecorate %22 Binding 4 - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 5 - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 6 - OpDecorate %6 SpecId 0 - OpDecorate %7 SpecId 1 - OpDecorate %8 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 - %6 = OpSpecConstant %uint 1 - %7 = OpSpecConstant %uint 1 - %8 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %6 %7 %8 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_16 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_16 = OpTypePointer StorageBuffer %_struct_16 - %void = OpTypeVoid - %26 = OpTypeFunction %void -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint - %uint_9 = OpConstant %uint 9 - %bool = OpTypeBool - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 - %uint_100 = OpConstant %uint 100 -%uint_4294967295 = OpConstant %uint 4294967295 - %uint_7 = OpConstant %uint 7 - %uint_10 = OpConstant %uint 10 - %uint_8 = OpConstant %uint 8 - %uint_11 = OpConstant %uint 11 - %uint_4 = OpConstant %uint 4 - %uint_5 = OpConstant %uint 5 - %uint_6 = OpConstant %uint 6 - %uint_64 = OpConstant %uint 64 - %uint_1023 = OpConstant %uint 1023 - %false = OpConstantFalse %bool - %uint_72 = OpConstant %uint 72 - %uint_68 = OpConstant %uint 68 - %true = OpConstantTrue %bool - %449 = OpUndef %uint - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant - %11 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input -%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input - %18 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %19 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %20 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %21 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %22 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %27 = OpFunction %void None %26 - %28 = OpLabel - %31 = OpAccessChain %_ptr_StorageBuffer_uint %21 %uint_0 %uint_0 - %32 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_0 - %34 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %35 = OpLoad %uint %34 - %37 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %38 = OpLoad %uint %37 - %39 = OpIAdd %uint %38 %35 - %40 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_0 %39 - %41 = OpLoad %uint %40 - %43 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_9 - %44 = OpLoad %uint %43 - %46 = OpUGreaterThanEqual %bool %41 %44 - OpSelectionMerge %203 None - OpBranchConditional %46 %49 %203 - %49 = OpLabel - %51 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_1 - %52 = OpLoad %uint %51 - %53 = OpINotEqual %bool %52 %uint_0 - OpSelectionMerge %201 None - OpBranchConditional %53 %56 %201 - %56 = OpLabel - %58 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_2 - %59 = OpLoad %uint %58 - %61 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_3 - %62 = OpLoad %uint %61 - %63 = OpINotEqual %bool %59 %uint_0 - OpSelectionMerge %199 None - OpBranchConditional %63 %66 %199 - %66 = OpLabel - %67 = OpPhi %uint %194 %193 %uint_0 %56 - OpLoopMerge %197 %193 None - OpBranch %70 - %70 = OpLabel - %71 = OpSGreaterThanEqual %bool %62 %uint_2 - OpSelectionMerge %124 None - OpBranchConditional %71 %74 %124 - %74 = OpLabel - %75 = OpSGreaterThanEqual %bool %62 %uint_3 - OpSelectionMerge %98 None - OpBranchConditional %75 %78 %98 - %78 = OpLabel - %79 = OpIEqual %bool %62 %uint_3 - OpSelectionMerge %95 None - OpBranchConditional %79 %82 %95 - %82 = OpLabel - %83 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %84 = OpLoad %uint %83 - %85 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %86 = OpLoad %uint %85 - %87 = OpIAdd %uint %86 %84 - %88 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %87 - %89 = OpLoad %uint %88 - %90 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %89 - %91 = OpLoad %uint %90 - %93 = OpULessThanEqual %bool %91 %uint_100 - OpBranch %95 - %95 = OpLabel - %96 = OpPhi %bool %93 %82 %true %78 - OpBranch %98 - %98 = OpLabel - %99 = OpPhi %bool %96 %95 %false %74 - %100 = OpPhi %bool %false %95 %true %74 - OpSelectionMerge %121 None - OpBranchConditional %100 %103 %121 - %103 = OpLabel - %104 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %105 = OpLoad %uint %104 - %106 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %107 = OpLoad %uint %106 - %108 = OpIAdd %uint %107 %105 - %109 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %108 - %110 = OpLoad %uint %109 - %111 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %110 - %112 = OpLoad %uint %111 - %113 = OpULessThanEqual %bool %112 %uint_100 - OpSelectionMerge %118 None - OpBranchConditional %113 %116 %118 - %116 = OpLabel - OpStore %111 %67 - OpBranch %118 - %118 = OpLabel - %119 = OpPhi %bool %true %116 %99 %103 - OpBranch %121 - %121 = OpLabel - %122 = OpPhi %bool %119 %118 %99 %98 - OpBranch %124 - %124 = OpLabel - %125 = OpPhi %bool %122 %121 %false %70 - %126 = OpPhi %bool %false %121 %true %70 - OpSelectionMerge %186 None - OpBranchConditional %126 %129 %186 - %129 = OpLabel - %130 = OpSGreaterThanEqual %bool %62 %uint_1 - OpSelectionMerge %153 None - OpBranchConditional %130 %133 %153 - %133 = OpLabel - %134 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %135 = OpLoad %uint %134 - %136 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %137 = OpLoad %uint %136 - %138 = OpIAdd %uint %137 %135 - %139 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %138 - %140 = OpLoad %uint %139 - %141 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %140 - OpStore %141 %67 - %142 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %143 = OpLoad %uint %142 - %144 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %145 = OpLoad %uint %144 - %146 = OpIAdd %uint %145 %143 - %147 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %146 - %148 = OpLoad %uint %147 - %149 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %148 - %150 = OpLoad %uint %149 - %151 = OpULessThanEqual %bool %150 %uint_100 - OpBranch %153 - %153 = OpLabel - %154 = OpPhi %bool %151 %133 %125 %129 - %155 = OpPhi %bool %false %133 %true %129 - OpSelectionMerge %183 None - OpBranchConditional %155 %158 %183 - %158 = OpLabel - %159 = OpIEqual %bool %62 %uint_0 - OpSelectionMerge %181 None - OpBranchConditional %159 %162 %181 - %162 = OpLabel - %163 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %164 = OpLoad %uint %163 - %165 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %166 = OpLoad %uint %165 - %167 = OpIAdd %uint %166 %164 - %168 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %167 - %169 = OpLoad %uint %168 - %170 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %169 - OpStore %170 %67 - %171 = OpIAdd %uint %67 %uint_1 - %172 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %173 = OpLoad %uint %172 - %174 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %175 = OpLoad %uint %174 - %176 = OpIAdd %uint %175 %173 - %177 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %176 - %178 = OpLoad %uint %177 - %179 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %178 - OpStore %179 %171 - OpBranch %181 - %181 = OpLabel - OpBranch %183 - %183 = OpLabel - %184 = OpPhi %bool %true %181 %154 %153 - OpBranch %186 - %186 = OpLabel - %187 = OpPhi %bool %184 %183 %125 %124 - OpBranchConditional %187 %189 %193 - %189 = OpLabel - %190 = OpIAdd %uint %67 %uint_1 - %191 = OpUGreaterThanEqual %bool %190 %59 - OpBranch %193 - %193 = OpLabel - %194 = OpPhi %uint %190 %189 %449 %186 - %195 = OpPhi %bool %191 %189 %true %186 - OpBranchConditional %195 %197 %66 - %197 = OpLabel - OpBranch %199 - %199 = OpLabel - OpBranch %201 - %201 = OpLabel - OpBranch %203 - %203 = OpLabel - %204 = OpPhi %bool %false %201 %true %28 - OpSelectionMerge %445 None - OpBranchConditional %204 %207 %445 - %207 = OpLabel - %208 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %209 = OpCompositeExtract %uint %208 0 - %210 = OpIMul %uint %209 %44 - %211 = OpIMul %uint %209 %41 - %212 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %213 = OpLoad %uint %212 - %214 = OpIAdd %uint %211 %213 - %215 = OpIAdd %uint %41 %uint_1 - %217 = OpIAdd %uint %44 %uint_4294967295 - %218 = OpUMod %uint %213 %217 - %219 = OpIAdd %uint %215 %218 - %220 = OpUMod %uint %219 %44 - %221 = OpIMul %uint %220 %209 - %223 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_7 - %224 = OpLoad %uint %223 - %225 = OpIMul %uint %224 %213 - %226 = OpUMod %uint %225 %209 - %227 = OpIAdd %uint %226 %221 - %229 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %230 = OpLoad %uint %229 - %231 = OpShiftLeftLogical %uint %214 %uint_1 - %232 = OpIMul %uint %231 %230 - %234 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_8 - %235 = OpLoad %uint %234 - %236 = OpIMul %uint %235 %214 - %237 = OpUMod %uint %236 %210 - %238 = OpShiftLeftLogical %uint %230 %uint_1 - %239 = OpIMul %uint %238 %237 - %241 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_11 - %242 = OpLoad %uint %241 - %243 = OpIAdd %uint %239 %242 - %244 = OpIMul %uint %238 %227 - %245 = OpIMul %uint %235 %227 - %246 = OpUMod %uint %245 %210 - %247 = OpIMul %uint %238 %246 - %248 = OpIAdd %uint %247 %242 - %250 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_4 - %251 = OpLoad %uint %250 - %252 = OpINotEqual %bool %251 %uint_0 - OpSelectionMerge %399 None - OpBranchConditional %252 %255 %399 - %255 = OpLabel - %257 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_5 - %258 = OpLoad %uint %257 - %260 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_6 - %261 = OpLoad %uint %260 - %262 = OpINotEqual %bool %258 %uint_0 - OpSelectionMerge %397 None - OpBranchConditional %262 %265 %397 - %265 = OpLabel - %266 = OpPhi %uint %392 %391 %uint_0 %255 - OpLoopMerge %395 %391 None - OpBranch %269 - %269 = OpLabel - %270 = OpSGreaterThanEqual %bool %261 %uint_2 - OpSelectionMerge %322 None - OpBranchConditional %270 %273 %322 - %273 = OpLabel - %274 = OpSGreaterThanEqual %bool %261 %uint_3 - OpSelectionMerge %296 None - OpBranchConditional %274 %277 %296 - %277 = OpLabel - %278 = OpIEqual %bool %261 %uint_3 - OpSelectionMerge %293 None - OpBranchConditional %278 %281 %293 - %281 = OpLabel - %282 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %283 = OpLoad %uint %282 - %284 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %285 = OpLoad %uint %284 - %286 = OpIAdd %uint %285 %283 - %287 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %286 - %288 = OpLoad %uint %287 - %289 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %288 - %290 = OpLoad %uint %289 - %291 = OpULessThanEqual %bool %290 %uint_100 - OpBranch %293 - %293 = OpLabel - %294 = OpPhi %bool %291 %281 %true %277 - OpBranch %296 - %296 = OpLabel - %297 = OpPhi %bool %294 %293 %false %273 - %298 = OpPhi %bool %false %293 %true %273 - OpSelectionMerge %319 None - OpBranchConditional %298 %301 %319 - %301 = OpLabel - %302 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %303 = OpLoad %uint %302 - %304 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %305 = OpLoad %uint %304 - %306 = OpIAdd %uint %305 %303 - %307 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %306 - %308 = OpLoad %uint %307 - %309 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %308 - %310 = OpLoad %uint %309 - %311 = OpULessThanEqual %bool %310 %uint_100 - OpSelectionMerge %316 None - OpBranchConditional %311 %314 %316 - %314 = OpLabel - OpStore %309 %266 - OpBranch %316 - %316 = OpLabel - %317 = OpPhi %bool %true %314 %297 %301 - OpBranch %319 - %319 = OpLabel - %320 = OpPhi %bool %317 %316 %297 %296 - OpBranch %322 - %322 = OpLabel - %323 = OpPhi %bool %320 %319 %false %269 - %324 = OpPhi %bool %false %319 %true %269 - OpSelectionMerge %384 None - OpBranchConditional %324 %327 %384 - %327 = OpLabel - %328 = OpSGreaterThanEqual %bool %261 %uint_1 - OpSelectionMerge %351 None - OpBranchConditional %328 %331 %351 - %331 = OpLabel - %332 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %333 = OpLoad %uint %332 - %334 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %335 = OpLoad %uint %334 - %336 = OpIAdd %uint %335 %333 - %337 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %336 - %338 = OpLoad %uint %337 - %339 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %338 - OpStore %339 %266 - %340 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %341 = OpLoad %uint %340 - %342 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %343 = OpLoad %uint %342 - %344 = OpIAdd %uint %343 %341 - %345 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %344 - %346 = OpLoad %uint %345 - %347 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %346 - %348 = OpLoad %uint %347 - %349 = OpULessThanEqual %bool %348 %uint_100 - OpBranch %351 - %351 = OpLabel - %352 = OpPhi %bool %349 %331 %323 %327 - %353 = OpPhi %bool %false %331 %true %327 - OpSelectionMerge %381 None - OpBranchConditional %353 %356 %381 - %356 = OpLabel - %357 = OpIEqual %bool %261 %uint_0 - OpSelectionMerge %379 None - OpBranchConditional %357 %360 %379 - %360 = OpLabel - %361 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %362 = OpLoad %uint %361 - %363 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %364 = OpLoad %uint %363 - %365 = OpIAdd %uint %364 %362 - %366 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %365 - %367 = OpLoad %uint %366 - %368 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %367 - OpStore %368 %266 - %369 = OpIAdd %uint %266 %uint_1 - %370 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %371 = OpLoad %uint %370 - %372 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %373 = OpLoad %uint %372 - %374 = OpIAdd %uint %373 %371 - %375 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %374 - %376 = OpLoad %uint %375 - %377 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %376 - OpStore %377 %369 - OpBranch %379 - %379 = OpLabel - OpBranch %381 - %381 = OpLabel - %382 = OpPhi %bool %true %379 %352 %351 - OpBranch %384 - %384 = OpLabel - %385 = OpPhi %bool %382 %381 %323 %322 - OpBranchConditional %385 %387 %391 - %387 = OpLabel - %388 = OpIAdd %uint %266 %uint_1 - %389 = OpUGreaterThanEqual %bool %388 %258 - OpBranch %391 - %391 = OpLabel - %392 = OpPhi %uint %388 %387 %449 %384 - %393 = OpPhi %bool %389 %387 %true %384 - OpBranchConditional %393 %395 %265 - %395 = OpLabel - OpBranch %397 - %397 = OpLabel - OpBranch %399 - %399 = OpLabel - %400 = OpLoad %uint %32 - %401 = OpINotEqual %bool %400 %uint_0 - OpSelectionMerge %430 None - OpBranchConditional %401 %404 %430 - %404 = OpLabel - %405 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %406 = OpCompositeExtract %uint %405 0 - %407 = OpLoad %uint %43 - %408 = OpIMul %uint %406 %407 - %410 = OpAtomicIAdd %uint %31 %uint_1 %uint_64 %uint_1 - %411 = OpULessThan %bool %410 %408 - OpSelectionMerge %428 None - OpBranchConditional %411 %414 %428 - %414 = OpLabel - %415 = OpPhi %uint %417 %414 %uint_0 %404 - %416 = OpAtomicLoad %uint %31 %uint_1 %uint_64 - %417 = OpIAdd %uint %415 %uint_1 - %419 = OpULessThan %bool %415 %uint_1023 - %420 = OpULessThan %bool %416 %408 - %422 = OpSelect %bool %419 %420 %false - %423 = OpLogicalNot %bool %422 - OpLoopMerge %426 %414 None - OpBranchConditional %423 %426 %414 - %426 = OpLabel - OpBranch %428 - %428 = OpLabel - OpBranch %430 - %430 = OpLabel - %431 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %232 - OpAtomicStore %431 %uint_1 %uint_64 %uint_1 - %432 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %243 - %434 = OpAtomicIAdd %uint %432 %uint_1 %uint_72 %uint_0 - %435 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %248 - %436 = OpAtomicExchange %uint %435 %uint_1 %uint_72 %uint_1 - %437 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %244 - %438 = OpAtomicLoad %uint %437 %uint_1 %uint_64 - %439 = OpShiftLeftLogical %uint %227 %uint_1 - %440 = OpBitwiseOr %uint %439 %uint_1 - %441 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %440 - OpAtomicStore %441 %uint_1 %uint_68 %438 - %443 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %231 - OpAtomicStore %443 %uint_1 %uint_68 %434 - OpBranch %445 - %445 = OpLabel - OpBranch %447 - %447 = OpLabel - OpReturn - OpFunctionEnd - %475 = OpExtInst %void %450 PushConstantRegionGroupOffset %uint_0 %uint_12 - %452 = OpExtInst %void %450 Kernel %27 %451 %uint_7 - %454 = OpExtInst %void %450 ArgumentInfo %453 - %455 = OpExtInst %void %450 ArgumentStorageBuffer %452 %uint_0 %uint_0 %uint_0 %454 - %457 = OpExtInst %void %450 ArgumentInfo %456 - %458 = OpExtInst %void %450 ArgumentStorageBuffer %452 %uint_1 %uint_0 %uint_1 %457 - %460 = OpExtInst %void %450 ArgumentInfo %459 - %461 = OpExtInst %void %450 ArgumentStorageBuffer %452 %uint_2 %uint_0 %uint_2 %460 - %463 = OpExtInst %void %450 ArgumentInfo %462 - %464 = OpExtInst %void %450 ArgumentStorageBuffer %452 %uint_3 %uint_0 %uint_3 %463 - %466 = OpExtInst %void %450 ArgumentInfo %465 - %467 = OpExtInst %void %450 ArgumentStorageBuffer %452 %uint_4 %uint_0 %uint_4 %466 - %469 = OpExtInst %void %450 ArgumentInfo %468 - %470 = OpExtInst %void %450 ArgumentStorageBuffer %452 %uint_5 %uint_0 %uint_5 %469 - %472 = OpExtInst %void %450 ArgumentInfo %471 - %473 = OpExtInst %void %450 ArgumentStorageBuffer %452 %uint_6 %uint_0 %uint_6 %472 - %476 = OpExtInst %void %450 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/store-buffer-rmw.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/store-buffer-rmw.spv.dis deleted file mode 100644 index 04efc88d1f..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/store-buffer-rmw.spv.dis +++ /dev/null @@ -1,524 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 476 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %449 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %27 "litmus_test" %gl_LocalInvocationID %gl_WorkGroupID - OpSource OpenCL_C 200 - %450 = OpString "litmus_test" - %452 = OpString "test_locations" - %455 = OpString "read_results" - %458 = OpString "shuffled_workgroups" - %461 = OpString "barrier" - %464 = OpString "scratchpad" - %467 = OpString "scratch_locations" - %470 = OpString "stress_params" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_16 0 Offset 0 - OpDecorate %_struct_16 Block - OpDecorate %18 DescriptorSet 0 - OpDecorate %18 Binding 0 - OpDecorate %19 DescriptorSet 0 - OpDecorate %19 Binding 1 - OpDecorate %20 DescriptorSet 0 - OpDecorate %20 Binding 2 - OpDecorate %21 DescriptorSet 0 - OpDecorate %21 Binding 3 - OpDecorate %22 DescriptorSet 0 - OpDecorate %22 Binding 4 - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 5 - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 6 - OpDecorate %6 SpecId 0 - OpDecorate %7 SpecId 1 - OpDecorate %8 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 - %6 = OpSpecConstant %uint 1 - %7 = OpSpecConstant %uint 1 - %8 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %6 %7 %8 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_16 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_16 = OpTypePointer StorageBuffer %_struct_16 - %void = OpTypeVoid - %26 = OpTypeFunction %void -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint - %uint_9 = OpConstant %uint 9 - %bool = OpTypeBool - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 - %uint_100 = OpConstant %uint 100 -%uint_4294967295 = OpConstant %uint 4294967295 - %uint_7 = OpConstant %uint 7 - %uint_10 = OpConstant %uint 10 - %uint_8 = OpConstant %uint 8 - %uint_11 = OpConstant %uint 11 - %uint_4 = OpConstant %uint 4 - %uint_5 = OpConstant %uint 5 - %uint_6 = OpConstant %uint 6 - %uint_64 = OpConstant %uint 64 - %uint_1023 = OpConstant %uint 1023 - %false = OpConstantFalse %bool - %uint_68 = OpConstant %uint 68 - %true = OpConstantTrue %bool - %448 = OpUndef %uint - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant - %11 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input -%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input - %18 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %19 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %20 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %21 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %22 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %27 = OpFunction %void None %26 - %28 = OpLabel - %31 = OpAccessChain %_ptr_StorageBuffer_uint %21 %uint_0 %uint_0 - %32 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_0 - %34 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %35 = OpLoad %uint %34 - %37 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %38 = OpLoad %uint %37 - %39 = OpIAdd %uint %38 %35 - %40 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_0 %39 - %41 = OpLoad %uint %40 - %43 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_9 - %44 = OpLoad %uint %43 - %46 = OpUGreaterThanEqual %bool %41 %44 - OpSelectionMerge %203 None - OpBranchConditional %46 %49 %203 - %49 = OpLabel - %51 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_1 - %52 = OpLoad %uint %51 - %53 = OpINotEqual %bool %52 %uint_0 - OpSelectionMerge %201 None - OpBranchConditional %53 %56 %201 - %56 = OpLabel - %58 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_2 - %59 = OpLoad %uint %58 - %61 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_3 - %62 = OpLoad %uint %61 - %63 = OpINotEqual %bool %59 %uint_0 - OpSelectionMerge %199 None - OpBranchConditional %63 %66 %199 - %66 = OpLabel - %67 = OpPhi %uint %194 %193 %uint_0 %56 - OpLoopMerge %197 %193 None - OpBranch %70 - %70 = OpLabel - %71 = OpSGreaterThanEqual %bool %62 %uint_2 - OpSelectionMerge %124 None - OpBranchConditional %71 %74 %124 - %74 = OpLabel - %75 = OpSGreaterThanEqual %bool %62 %uint_3 - OpSelectionMerge %98 None - OpBranchConditional %75 %78 %98 - %78 = OpLabel - %79 = OpIEqual %bool %62 %uint_3 - OpSelectionMerge %95 None - OpBranchConditional %79 %82 %95 - %82 = OpLabel - %83 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %84 = OpLoad %uint %83 - %85 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %86 = OpLoad %uint %85 - %87 = OpIAdd %uint %86 %84 - %88 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %87 - %89 = OpLoad %uint %88 - %90 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %89 - %91 = OpLoad %uint %90 - %93 = OpULessThanEqual %bool %91 %uint_100 - OpBranch %95 - %95 = OpLabel - %96 = OpPhi %bool %93 %82 %true %78 - OpBranch %98 - %98 = OpLabel - %99 = OpPhi %bool %96 %95 %false %74 - %100 = OpPhi %bool %false %95 %true %74 - OpSelectionMerge %121 None - OpBranchConditional %100 %103 %121 - %103 = OpLabel - %104 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %105 = OpLoad %uint %104 - %106 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %107 = OpLoad %uint %106 - %108 = OpIAdd %uint %107 %105 - %109 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %108 - %110 = OpLoad %uint %109 - %111 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %110 - %112 = OpLoad %uint %111 - %113 = OpULessThanEqual %bool %112 %uint_100 - OpSelectionMerge %118 None - OpBranchConditional %113 %116 %118 - %116 = OpLabel - OpStore %111 %67 - OpBranch %118 - %118 = OpLabel - %119 = OpPhi %bool %true %116 %99 %103 - OpBranch %121 - %121 = OpLabel - %122 = OpPhi %bool %119 %118 %99 %98 - OpBranch %124 - %124 = OpLabel - %125 = OpPhi %bool %122 %121 %false %70 - %126 = OpPhi %bool %false %121 %true %70 - OpSelectionMerge %186 None - OpBranchConditional %126 %129 %186 - %129 = OpLabel - %130 = OpSGreaterThanEqual %bool %62 %uint_1 - OpSelectionMerge %153 None - OpBranchConditional %130 %133 %153 - %133 = OpLabel - %134 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %135 = OpLoad %uint %134 - %136 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %137 = OpLoad %uint %136 - %138 = OpIAdd %uint %137 %135 - %139 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %138 - %140 = OpLoad %uint %139 - %141 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %140 - OpStore %141 %67 - %142 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %143 = OpLoad %uint %142 - %144 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %145 = OpLoad %uint %144 - %146 = OpIAdd %uint %145 %143 - %147 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %146 - %148 = OpLoad %uint %147 - %149 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %148 - %150 = OpLoad %uint %149 - %151 = OpULessThanEqual %bool %150 %uint_100 - OpBranch %153 - %153 = OpLabel - %154 = OpPhi %bool %151 %133 %125 %129 - %155 = OpPhi %bool %false %133 %true %129 - OpSelectionMerge %183 None - OpBranchConditional %155 %158 %183 - %158 = OpLabel - %159 = OpIEqual %bool %62 %uint_0 - OpSelectionMerge %181 None - OpBranchConditional %159 %162 %181 - %162 = OpLabel - %163 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %164 = OpLoad %uint %163 - %165 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %166 = OpLoad %uint %165 - %167 = OpIAdd %uint %166 %164 - %168 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %167 - %169 = OpLoad %uint %168 - %170 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %169 - OpStore %170 %67 - %171 = OpIAdd %uint %67 %uint_1 - %172 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %173 = OpLoad %uint %172 - %174 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %175 = OpLoad %uint %174 - %176 = OpIAdd %uint %175 %173 - %177 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %176 - %178 = OpLoad %uint %177 - %179 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %178 - OpStore %179 %171 - OpBranch %181 - %181 = OpLabel - OpBranch %183 - %183 = OpLabel - %184 = OpPhi %bool %true %181 %154 %153 - OpBranch %186 - %186 = OpLabel - %187 = OpPhi %bool %184 %183 %125 %124 - OpBranchConditional %187 %189 %193 - %189 = OpLabel - %190 = OpIAdd %uint %67 %uint_1 - %191 = OpUGreaterThanEqual %bool %190 %59 - OpBranch %193 - %193 = OpLabel - %194 = OpPhi %uint %190 %189 %448 %186 - %195 = OpPhi %bool %191 %189 %true %186 - OpBranchConditional %195 %197 %66 - %197 = OpLabel - OpBranch %199 - %199 = OpLabel - OpBranch %201 - %201 = OpLabel - OpBranch %203 - %203 = OpLabel - %204 = OpPhi %bool %false %201 %true %28 - OpSelectionMerge %444 None - OpBranchConditional %204 %207 %444 - %207 = OpLabel - %208 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %209 = OpCompositeExtract %uint %208 0 - %210 = OpIMul %uint %209 %44 - %211 = OpIMul %uint %209 %41 - %212 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %213 = OpLoad %uint %212 - %214 = OpIAdd %uint %211 %213 - %215 = OpIAdd %uint %41 %uint_1 - %217 = OpIAdd %uint %44 %uint_4294967295 - %218 = OpUMod %uint %213 %217 - %219 = OpIAdd %uint %215 %218 - %220 = OpUMod %uint %219 %44 - %221 = OpIMul %uint %220 %209 - %223 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_7 - %224 = OpLoad %uint %223 - %225 = OpIMul %uint %224 %213 - %226 = OpUMod %uint %225 %209 - %227 = OpIAdd %uint %226 %221 - %229 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %230 = OpLoad %uint %229 - %231 = OpShiftLeftLogical %uint %214 %uint_1 - %232 = OpIMul %uint %231 %230 - %234 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_8 - %235 = OpLoad %uint %234 - %236 = OpIMul %uint %235 %214 - %237 = OpUMod %uint %236 %210 - %238 = OpShiftLeftLogical %uint %230 %uint_1 - %239 = OpIMul %uint %238 %237 - %241 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_11 - %242 = OpLoad %uint %241 - %243 = OpIAdd %uint %239 %242 - %244 = OpIMul %uint %238 %227 - %245 = OpIMul %uint %235 %227 - %246 = OpUMod %uint %245 %210 - %247 = OpIMul %uint %238 %246 - %248 = OpIAdd %uint %247 %242 - %250 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_4 - %251 = OpLoad %uint %250 - %252 = OpINotEqual %bool %251 %uint_0 - OpSelectionMerge %399 None - OpBranchConditional %252 %255 %399 - %255 = OpLabel - %257 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_5 - %258 = OpLoad %uint %257 - %260 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_6 - %261 = OpLoad %uint %260 - %262 = OpINotEqual %bool %258 %uint_0 - OpSelectionMerge %397 None - OpBranchConditional %262 %265 %397 - %265 = OpLabel - %266 = OpPhi %uint %392 %391 %uint_0 %255 - OpLoopMerge %395 %391 None - OpBranch %269 - %269 = OpLabel - %270 = OpSGreaterThanEqual %bool %261 %uint_2 - OpSelectionMerge %322 None - OpBranchConditional %270 %273 %322 - %273 = OpLabel - %274 = OpSGreaterThanEqual %bool %261 %uint_3 - OpSelectionMerge %296 None - OpBranchConditional %274 %277 %296 - %277 = OpLabel - %278 = OpIEqual %bool %261 %uint_3 - OpSelectionMerge %293 None - OpBranchConditional %278 %281 %293 - %281 = OpLabel - %282 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %283 = OpLoad %uint %282 - %284 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %285 = OpLoad %uint %284 - %286 = OpIAdd %uint %285 %283 - %287 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %286 - %288 = OpLoad %uint %287 - %289 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %288 - %290 = OpLoad %uint %289 - %291 = OpULessThanEqual %bool %290 %uint_100 - OpBranch %293 - %293 = OpLabel - %294 = OpPhi %bool %291 %281 %true %277 - OpBranch %296 - %296 = OpLabel - %297 = OpPhi %bool %294 %293 %false %273 - %298 = OpPhi %bool %false %293 %true %273 - OpSelectionMerge %319 None - OpBranchConditional %298 %301 %319 - %301 = OpLabel - %302 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %303 = OpLoad %uint %302 - %304 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %305 = OpLoad %uint %304 - %306 = OpIAdd %uint %305 %303 - %307 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %306 - %308 = OpLoad %uint %307 - %309 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %308 - %310 = OpLoad %uint %309 - %311 = OpULessThanEqual %bool %310 %uint_100 - OpSelectionMerge %316 None - OpBranchConditional %311 %314 %316 - %314 = OpLabel - OpStore %309 %266 - OpBranch %316 - %316 = OpLabel - %317 = OpPhi %bool %true %314 %297 %301 - OpBranch %319 - %319 = OpLabel - %320 = OpPhi %bool %317 %316 %297 %296 - OpBranch %322 - %322 = OpLabel - %323 = OpPhi %bool %320 %319 %false %269 - %324 = OpPhi %bool %false %319 %true %269 - OpSelectionMerge %384 None - OpBranchConditional %324 %327 %384 - %327 = OpLabel - %328 = OpSGreaterThanEqual %bool %261 %uint_1 - OpSelectionMerge %351 None - OpBranchConditional %328 %331 %351 - %331 = OpLabel - %332 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %333 = OpLoad %uint %332 - %334 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %335 = OpLoad %uint %334 - %336 = OpIAdd %uint %335 %333 - %337 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %336 - %338 = OpLoad %uint %337 - %339 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %338 - OpStore %339 %266 - %340 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %341 = OpLoad %uint %340 - %342 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %343 = OpLoad %uint %342 - %344 = OpIAdd %uint %343 %341 - %345 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %344 - %346 = OpLoad %uint %345 - %347 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %346 - %348 = OpLoad %uint %347 - %349 = OpULessThanEqual %bool %348 %uint_100 - OpBranch %351 - %351 = OpLabel - %352 = OpPhi %bool %349 %331 %323 %327 - %353 = OpPhi %bool %false %331 %true %327 - OpSelectionMerge %381 None - OpBranchConditional %353 %356 %381 - %356 = OpLabel - %357 = OpIEqual %bool %261 %uint_0 - OpSelectionMerge %379 None - OpBranchConditional %357 %360 %379 - %360 = OpLabel - %361 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %362 = OpLoad %uint %361 - %363 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %364 = OpLoad %uint %363 - %365 = OpIAdd %uint %364 %362 - %366 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %365 - %367 = OpLoad %uint %366 - %368 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %367 - OpStore %368 %266 - %369 = OpIAdd %uint %266 %uint_1 - %370 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %371 = OpLoad %uint %370 - %372 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %373 = OpLoad %uint %372 - %374 = OpIAdd %uint %373 %371 - %375 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %374 - %376 = OpLoad %uint %375 - %377 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %376 - OpStore %377 %369 - OpBranch %379 - %379 = OpLabel - OpBranch %381 - %381 = OpLabel - %382 = OpPhi %bool %true %379 %352 %351 - OpBranch %384 - %384 = OpLabel - %385 = OpPhi %bool %382 %381 %323 %322 - OpBranchConditional %385 %387 %391 - %387 = OpLabel - %388 = OpIAdd %uint %266 %uint_1 - %389 = OpUGreaterThanEqual %bool %388 %258 - OpBranch %391 - %391 = OpLabel - %392 = OpPhi %uint %388 %387 %448 %384 - %393 = OpPhi %bool %389 %387 %true %384 - OpBranchConditional %393 %395 %265 - %395 = OpLabel - OpBranch %397 - %397 = OpLabel - OpBranch %399 - %399 = OpLabel - %400 = OpLoad %uint %32 - %401 = OpINotEqual %bool %400 %uint_0 - OpSelectionMerge %430 None - OpBranchConditional %401 %404 %430 - %404 = OpLabel - %405 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %406 = OpCompositeExtract %uint %405 0 - %407 = OpLoad %uint %43 - %408 = OpIMul %uint %406 %407 - %410 = OpAtomicIAdd %uint %31 %uint_1 %uint_64 %uint_1 - %411 = OpULessThan %bool %410 %408 - OpSelectionMerge %428 None - OpBranchConditional %411 %414 %428 - %414 = OpLabel - %415 = OpPhi %uint %417 %414 %uint_0 %404 - %416 = OpAtomicLoad %uint %31 %uint_1 %uint_64 - %417 = OpIAdd %uint %415 %uint_1 - %419 = OpULessThan %bool %415 %uint_1023 - %420 = OpULessThan %bool %416 %408 - %422 = OpSelect %bool %419 %420 %false - %423 = OpLogicalNot %bool %422 - OpLoopMerge %426 %414 None - OpBranchConditional %423 %426 %414 - %426 = OpLabel - OpBranch %428 - %428 = OpLabel - OpBranch %430 - %430 = OpLabel - %431 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %232 - OpAtomicStore %431 %uint_1 %uint_64 %uint_1 - %432 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %243 - %433 = OpAtomicIAdd %uint %432 %uint_1 %uint_64 %uint_0 - %434 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %248 - %435 = OpAtomicExchange %uint %434 %uint_1 %uint_64 %uint_1 - %436 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %244 - %437 = OpAtomicLoad %uint %436 %uint_1 %uint_64 - %438 = OpShiftLeftLogical %uint %227 %uint_1 - %439 = OpBitwiseOr %uint %438 %uint_1 - %440 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %439 - OpAtomicStore %440 %uint_1 %uint_68 %437 - %442 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %231 - OpAtomicStore %442 %uint_1 %uint_68 %433 - OpBranch %444 - %444 = OpLabel - OpBranch %446 - %446 = OpLabel - OpReturn - OpFunctionEnd - %474 = OpExtInst %void %449 PushConstantRegionGroupOffset %uint_0 %uint_12 - %451 = OpExtInst %void %449 Kernel %27 %450 %uint_7 - %453 = OpExtInst %void %449 ArgumentInfo %452 - %454 = OpExtInst %void %449 ArgumentStorageBuffer %451 %uint_0 %uint_0 %uint_0 %453 - %456 = OpExtInst %void %449 ArgumentInfo %455 - %457 = OpExtInst %void %449 ArgumentStorageBuffer %451 %uint_1 %uint_0 %uint_1 %456 - %459 = OpExtInst %void %449 ArgumentInfo %458 - %460 = OpExtInst %void %449 ArgumentStorageBuffer %451 %uint_2 %uint_0 %uint_2 %459 - %462 = OpExtInst %void %449 ArgumentInfo %461 - %463 = OpExtInst %void %449 ArgumentStorageBuffer %451 %uint_3 %uint_0 %uint_3 %462 - %465 = OpExtInst %void %449 ArgumentInfo %464 - %466 = OpExtInst %void %449 ArgumentStorageBuffer %451 %uint_4 %uint_0 %uint_4 %465 - %468 = OpExtInst %void %449 ArgumentInfo %467 - %469 = OpExtInst %void %449 ArgumentStorageBuffer %451 %uint_5 %uint_0 %uint_5 %468 - %471 = OpExtInst %void %449 ArgumentInfo %470 - %472 = OpExtInst %void %449 ArgumentStorageBuffer %451 %uint_6 %uint_0 %uint_6 %471 - %475 = OpExtInst %void %449 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/store-buffer.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/store-buffer.spv.dis deleted file mode 100644 index f3173067a3..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/store-buffer.spv.dis +++ /dev/null @@ -1,524 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 475 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %448 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %27 "litmus_test" %gl_LocalInvocationID %gl_WorkGroupID - OpSource OpenCL_C 200 - %449 = OpString "litmus_test" - %451 = OpString "test_locations" - %454 = OpString "read_results" - %457 = OpString "shuffled_workgroups" - %460 = OpString "barrier" - %463 = OpString "scratchpad" - %466 = OpString "scratch_locations" - %469 = OpString "stress_params" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_16 0 Offset 0 - OpDecorate %_struct_16 Block - OpDecorate %18 DescriptorSet 0 - OpDecorate %18 Binding 0 - OpDecorate %19 DescriptorSet 0 - OpDecorate %19 Binding 1 - OpDecorate %20 DescriptorSet 0 - OpDecorate %20 Binding 2 - OpDecorate %21 DescriptorSet 0 - OpDecorate %21 Binding 3 - OpDecorate %22 DescriptorSet 0 - OpDecorate %22 Binding 4 - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 5 - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 6 - OpDecorate %6 SpecId 0 - OpDecorate %7 SpecId 1 - OpDecorate %8 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 - %6 = OpSpecConstant %uint 1 - %7 = OpSpecConstant %uint 1 - %8 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %6 %7 %8 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_16 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_16 = OpTypePointer StorageBuffer %_struct_16 - %void = OpTypeVoid - %26 = OpTypeFunction %void -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint - %uint_9 = OpConstant %uint 9 - %bool = OpTypeBool - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 - %uint_100 = OpConstant %uint 100 -%uint_4294967295 = OpConstant %uint 4294967295 - %uint_7 = OpConstant %uint 7 - %uint_10 = OpConstant %uint 10 - %uint_8 = OpConstant %uint 8 - %uint_11 = OpConstant %uint 11 - %uint_4 = OpConstant %uint 4 - %uint_5 = OpConstant %uint 5 - %uint_6 = OpConstant %uint 6 - %uint_64 = OpConstant %uint 64 - %uint_1023 = OpConstant %uint 1023 - %false = OpConstantFalse %bool - %uint_68 = OpConstant %uint 68 - %true = OpConstantTrue %bool - %447 = OpUndef %uint - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant - %11 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input -%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input - %18 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %19 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %20 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %21 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %22 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %27 = OpFunction %void None %26 - %28 = OpLabel - %31 = OpAccessChain %_ptr_StorageBuffer_uint %21 %uint_0 %uint_0 - %32 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_0 - %34 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %35 = OpLoad %uint %34 - %37 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %38 = OpLoad %uint %37 - %39 = OpIAdd %uint %38 %35 - %40 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_0 %39 - %41 = OpLoad %uint %40 - %43 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_9 - %44 = OpLoad %uint %43 - %46 = OpUGreaterThanEqual %bool %41 %44 - OpSelectionMerge %203 None - OpBranchConditional %46 %49 %203 - %49 = OpLabel - %51 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_1 - %52 = OpLoad %uint %51 - %53 = OpINotEqual %bool %52 %uint_0 - OpSelectionMerge %201 None - OpBranchConditional %53 %56 %201 - %56 = OpLabel - %58 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_2 - %59 = OpLoad %uint %58 - %61 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_3 - %62 = OpLoad %uint %61 - %63 = OpINotEqual %bool %59 %uint_0 - OpSelectionMerge %199 None - OpBranchConditional %63 %66 %199 - %66 = OpLabel - %67 = OpPhi %uint %194 %193 %uint_0 %56 - OpLoopMerge %197 %193 None - OpBranch %70 - %70 = OpLabel - %71 = OpSGreaterThanEqual %bool %62 %uint_2 - OpSelectionMerge %124 None - OpBranchConditional %71 %74 %124 - %74 = OpLabel - %75 = OpSGreaterThanEqual %bool %62 %uint_3 - OpSelectionMerge %98 None - OpBranchConditional %75 %78 %98 - %78 = OpLabel - %79 = OpIEqual %bool %62 %uint_3 - OpSelectionMerge %95 None - OpBranchConditional %79 %82 %95 - %82 = OpLabel - %83 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %84 = OpLoad %uint %83 - %85 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %86 = OpLoad %uint %85 - %87 = OpIAdd %uint %86 %84 - %88 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %87 - %89 = OpLoad %uint %88 - %90 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %89 - %91 = OpLoad %uint %90 - %93 = OpULessThanEqual %bool %91 %uint_100 - OpBranch %95 - %95 = OpLabel - %96 = OpPhi %bool %93 %82 %true %78 - OpBranch %98 - %98 = OpLabel - %99 = OpPhi %bool %96 %95 %false %74 - %100 = OpPhi %bool %false %95 %true %74 - OpSelectionMerge %121 None - OpBranchConditional %100 %103 %121 - %103 = OpLabel - %104 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %105 = OpLoad %uint %104 - %106 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %107 = OpLoad %uint %106 - %108 = OpIAdd %uint %107 %105 - %109 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %108 - %110 = OpLoad %uint %109 - %111 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %110 - %112 = OpLoad %uint %111 - %113 = OpULessThanEqual %bool %112 %uint_100 - OpSelectionMerge %118 None - OpBranchConditional %113 %116 %118 - %116 = OpLabel - OpStore %111 %67 - OpBranch %118 - %118 = OpLabel - %119 = OpPhi %bool %true %116 %99 %103 - OpBranch %121 - %121 = OpLabel - %122 = OpPhi %bool %119 %118 %99 %98 - OpBranch %124 - %124 = OpLabel - %125 = OpPhi %bool %122 %121 %false %70 - %126 = OpPhi %bool %false %121 %true %70 - OpSelectionMerge %186 None - OpBranchConditional %126 %129 %186 - %129 = OpLabel - %130 = OpSGreaterThanEqual %bool %62 %uint_1 - OpSelectionMerge %153 None - OpBranchConditional %130 %133 %153 - %133 = OpLabel - %134 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %135 = OpLoad %uint %134 - %136 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %137 = OpLoad %uint %136 - %138 = OpIAdd %uint %137 %135 - %139 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %138 - %140 = OpLoad %uint %139 - %141 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %140 - OpStore %141 %67 - %142 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %143 = OpLoad %uint %142 - %144 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %145 = OpLoad %uint %144 - %146 = OpIAdd %uint %145 %143 - %147 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %146 - %148 = OpLoad %uint %147 - %149 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %148 - %150 = OpLoad %uint %149 - %151 = OpULessThanEqual %bool %150 %uint_100 - OpBranch %153 - %153 = OpLabel - %154 = OpPhi %bool %151 %133 %125 %129 - %155 = OpPhi %bool %false %133 %true %129 - OpSelectionMerge %183 None - OpBranchConditional %155 %158 %183 - %158 = OpLabel - %159 = OpIEqual %bool %62 %uint_0 - OpSelectionMerge %181 None - OpBranchConditional %159 %162 %181 - %162 = OpLabel - %163 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %164 = OpLoad %uint %163 - %165 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %166 = OpLoad %uint %165 - %167 = OpIAdd %uint %166 %164 - %168 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %167 - %169 = OpLoad %uint %168 - %170 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %169 - OpStore %170 %67 - %171 = OpIAdd %uint %67 %uint_1 - %172 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %173 = OpLoad %uint %172 - %174 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %175 = OpLoad %uint %174 - %176 = OpIAdd %uint %175 %173 - %177 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %176 - %178 = OpLoad %uint %177 - %179 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %178 - OpStore %179 %171 - OpBranch %181 - %181 = OpLabel - OpBranch %183 - %183 = OpLabel - %184 = OpPhi %bool %true %181 %154 %153 - OpBranch %186 - %186 = OpLabel - %187 = OpPhi %bool %184 %183 %125 %124 - OpBranchConditional %187 %189 %193 - %189 = OpLabel - %190 = OpIAdd %uint %67 %uint_1 - %191 = OpUGreaterThanEqual %bool %190 %59 - OpBranch %193 - %193 = OpLabel - %194 = OpPhi %uint %190 %189 %447 %186 - %195 = OpPhi %bool %191 %189 %true %186 - OpBranchConditional %195 %197 %66 - %197 = OpLabel - OpBranch %199 - %199 = OpLabel - OpBranch %201 - %201 = OpLabel - OpBranch %203 - %203 = OpLabel - %204 = OpPhi %bool %false %201 %true %28 - OpSelectionMerge %443 None - OpBranchConditional %204 %207 %443 - %207 = OpLabel - %208 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %209 = OpCompositeExtract %uint %208 0 - %210 = OpIMul %uint %209 %44 - %211 = OpIMul %uint %209 %41 - %212 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %213 = OpLoad %uint %212 - %214 = OpIAdd %uint %211 %213 - %215 = OpIAdd %uint %41 %uint_1 - %217 = OpIAdd %uint %44 %uint_4294967295 - %218 = OpUMod %uint %213 %217 - %219 = OpIAdd %uint %215 %218 - %220 = OpUMod %uint %219 %44 - %221 = OpIMul %uint %220 %209 - %223 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_7 - %224 = OpLoad %uint %223 - %225 = OpIMul %uint %224 %213 - %226 = OpUMod %uint %225 %209 - %227 = OpIAdd %uint %226 %221 - %229 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %230 = OpLoad %uint %229 - %231 = OpShiftLeftLogical %uint %214 %uint_1 - %232 = OpIMul %uint %231 %230 - %234 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_8 - %235 = OpLoad %uint %234 - %236 = OpIMul %uint %235 %214 - %237 = OpUMod %uint %236 %210 - %238 = OpShiftLeftLogical %uint %230 %uint_1 - %239 = OpIMul %uint %238 %237 - %241 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_11 - %242 = OpLoad %uint %241 - %243 = OpIAdd %uint %239 %242 - %244 = OpIMul %uint %238 %227 - %245 = OpIMul %uint %235 %227 - %246 = OpUMod %uint %245 %210 - %247 = OpIMul %uint %238 %246 - %248 = OpIAdd %uint %247 %242 - %250 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_4 - %251 = OpLoad %uint %250 - %252 = OpINotEqual %bool %251 %uint_0 - OpSelectionMerge %399 None - OpBranchConditional %252 %255 %399 - %255 = OpLabel - %257 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_5 - %258 = OpLoad %uint %257 - %260 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_6 - %261 = OpLoad %uint %260 - %262 = OpINotEqual %bool %258 %uint_0 - OpSelectionMerge %397 None - OpBranchConditional %262 %265 %397 - %265 = OpLabel - %266 = OpPhi %uint %392 %391 %uint_0 %255 - OpLoopMerge %395 %391 None - OpBranch %269 - %269 = OpLabel - %270 = OpSGreaterThanEqual %bool %261 %uint_2 - OpSelectionMerge %322 None - OpBranchConditional %270 %273 %322 - %273 = OpLabel - %274 = OpSGreaterThanEqual %bool %261 %uint_3 - OpSelectionMerge %296 None - OpBranchConditional %274 %277 %296 - %277 = OpLabel - %278 = OpIEqual %bool %261 %uint_3 - OpSelectionMerge %293 None - OpBranchConditional %278 %281 %293 - %281 = OpLabel - %282 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %283 = OpLoad %uint %282 - %284 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %285 = OpLoad %uint %284 - %286 = OpIAdd %uint %285 %283 - %287 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %286 - %288 = OpLoad %uint %287 - %289 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %288 - %290 = OpLoad %uint %289 - %291 = OpULessThanEqual %bool %290 %uint_100 - OpBranch %293 - %293 = OpLabel - %294 = OpPhi %bool %291 %281 %true %277 - OpBranch %296 - %296 = OpLabel - %297 = OpPhi %bool %294 %293 %false %273 - %298 = OpPhi %bool %false %293 %true %273 - OpSelectionMerge %319 None - OpBranchConditional %298 %301 %319 - %301 = OpLabel - %302 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %303 = OpLoad %uint %302 - %304 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %305 = OpLoad %uint %304 - %306 = OpIAdd %uint %305 %303 - %307 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %306 - %308 = OpLoad %uint %307 - %309 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %308 - %310 = OpLoad %uint %309 - %311 = OpULessThanEqual %bool %310 %uint_100 - OpSelectionMerge %316 None - OpBranchConditional %311 %314 %316 - %314 = OpLabel - OpStore %309 %266 - OpBranch %316 - %316 = OpLabel - %317 = OpPhi %bool %true %314 %297 %301 - OpBranch %319 - %319 = OpLabel - %320 = OpPhi %bool %317 %316 %297 %296 - OpBranch %322 - %322 = OpLabel - %323 = OpPhi %bool %320 %319 %false %269 - %324 = OpPhi %bool %false %319 %true %269 - OpSelectionMerge %384 None - OpBranchConditional %324 %327 %384 - %327 = OpLabel - %328 = OpSGreaterThanEqual %bool %261 %uint_1 - OpSelectionMerge %351 None - OpBranchConditional %328 %331 %351 - %331 = OpLabel - %332 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %333 = OpLoad %uint %332 - %334 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %335 = OpLoad %uint %334 - %336 = OpIAdd %uint %335 %333 - %337 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %336 - %338 = OpLoad %uint %337 - %339 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %338 - OpStore %339 %266 - %340 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %341 = OpLoad %uint %340 - %342 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %343 = OpLoad %uint %342 - %344 = OpIAdd %uint %343 %341 - %345 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %344 - %346 = OpLoad %uint %345 - %347 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %346 - %348 = OpLoad %uint %347 - %349 = OpULessThanEqual %bool %348 %uint_100 - OpBranch %351 - %351 = OpLabel - %352 = OpPhi %bool %349 %331 %323 %327 - %353 = OpPhi %bool %false %331 %true %327 - OpSelectionMerge %381 None - OpBranchConditional %353 %356 %381 - %356 = OpLabel - %357 = OpIEqual %bool %261 %uint_0 - OpSelectionMerge %379 None - OpBranchConditional %357 %360 %379 - %360 = OpLabel - %361 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %362 = OpLoad %uint %361 - %363 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %364 = OpLoad %uint %363 - %365 = OpIAdd %uint %364 %362 - %366 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %365 - %367 = OpLoad %uint %366 - %368 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %367 - OpStore %368 %266 - %369 = OpIAdd %uint %266 %uint_1 - %370 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %371 = OpLoad %uint %370 - %372 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %373 = OpLoad %uint %372 - %374 = OpIAdd %uint %373 %371 - %375 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %374 - %376 = OpLoad %uint %375 - %377 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %376 - OpStore %377 %369 - OpBranch %379 - %379 = OpLabel - OpBranch %381 - %381 = OpLabel - %382 = OpPhi %bool %true %379 %352 %351 - OpBranch %384 - %384 = OpLabel - %385 = OpPhi %bool %382 %381 %323 %322 - OpBranchConditional %385 %387 %391 - %387 = OpLabel - %388 = OpIAdd %uint %266 %uint_1 - %389 = OpUGreaterThanEqual %bool %388 %258 - OpBranch %391 - %391 = OpLabel - %392 = OpPhi %uint %388 %387 %447 %384 - %393 = OpPhi %bool %389 %387 %true %384 - OpBranchConditional %393 %395 %265 - %395 = OpLabel - OpBranch %397 - %397 = OpLabel - OpBranch %399 - %399 = OpLabel - %400 = OpLoad %uint %32 - %401 = OpINotEqual %bool %400 %uint_0 - OpSelectionMerge %430 None - OpBranchConditional %401 %404 %430 - %404 = OpLabel - %405 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %406 = OpCompositeExtract %uint %405 0 - %407 = OpLoad %uint %43 - %408 = OpIMul %uint %406 %407 - %410 = OpAtomicIAdd %uint %31 %uint_1 %uint_64 %uint_1 - %411 = OpULessThan %bool %410 %408 - OpSelectionMerge %428 None - OpBranchConditional %411 %414 %428 - %414 = OpLabel - %415 = OpPhi %uint %417 %414 %uint_0 %404 - %416 = OpAtomicLoad %uint %31 %uint_1 %uint_64 - %417 = OpIAdd %uint %415 %uint_1 - %419 = OpULessThan %bool %415 %uint_1023 - %420 = OpULessThan %bool %416 %408 - %422 = OpSelect %bool %419 %420 %false - %423 = OpLogicalNot %bool %422 - OpLoopMerge %426 %414 None - OpBranchConditional %423 %426 %414 - %426 = OpLabel - OpBranch %428 - %428 = OpLabel - OpBranch %430 - %430 = OpLabel - %431 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %232 - OpAtomicStore %431 %uint_1 %uint_64 %uint_1 - %432 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %243 - %433 = OpAtomicLoad %uint %432 %uint_1 %uint_64 - %434 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %248 - OpAtomicStore %434 %uint_1 %uint_64 %uint_1 - %435 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %244 - %436 = OpAtomicLoad %uint %435 %uint_1 %uint_64 - %437 = OpShiftLeftLogical %uint %227 %uint_1 - %438 = OpBitwiseOr %uint %437 %uint_1 - %439 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %438 - OpAtomicStore %439 %uint_1 %uint_68 %436 - %441 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %231 - OpAtomicStore %441 %uint_1 %uint_68 %433 - OpBranch %443 - %443 = OpLabel - OpBranch %445 - %445 = OpLabel - OpReturn - OpFunctionEnd - %473 = OpExtInst %void %448 PushConstantRegionGroupOffset %uint_0 %uint_12 - %450 = OpExtInst %void %448 Kernel %27 %449 %uint_7 - %452 = OpExtInst %void %448 ArgumentInfo %451 - %453 = OpExtInst %void %448 ArgumentStorageBuffer %450 %uint_0 %uint_0 %uint_0 %452 - %455 = OpExtInst %void %448 ArgumentInfo %454 - %456 = OpExtInst %void %448 ArgumentStorageBuffer %450 %uint_1 %uint_0 %uint_1 %455 - %458 = OpExtInst %void %448 ArgumentInfo %457 - %459 = OpExtInst %void %448 ArgumentStorageBuffer %450 %uint_2 %uint_0 %uint_2 %458 - %461 = OpExtInst %void %448 ArgumentInfo %460 - %462 = OpExtInst %void %448 ArgumentStorageBuffer %450 %uint_3 %uint_0 %uint_3 %461 - %464 = OpExtInst %void %448 ArgumentInfo %463 - %465 = OpExtInst %void %448 ArgumentStorageBuffer %450 %uint_4 %uint_0 %uint_4 %464 - %467 = OpExtInst %void %448 ArgumentInfo %466 - %468 = OpExtInst %void %448 ArgumentStorageBuffer %450 %uint_5 %uint_0 %uint_5 %467 - %470 = OpExtInst %void %448 ArgumentInfo %469 - %471 = OpExtInst %void %448 ArgumentStorageBuffer %450 %uint_6 %uint_0 %uint_6 %470 - %474 = OpExtInst %void %448 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/wrc-acq.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/wrc-acq.spv.dis deleted file mode 100644 index cefa9cb3b1..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/wrc-acq.spv.dis +++ /dev/null @@ -1,541 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 491 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %463 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %27 "litmus_test" %gl_LocalInvocationID %gl_WorkGroupID - OpSource OpenCL_C 200 - %464 = OpString "litmus_test" - %465 = OpString " __kernel" - %467 = OpString "test_locations" - %470 = OpString "read_results" - %473 = OpString "shuffled_workgroups" - %476 = OpString "barrier" - %479 = OpString "scratchpad" - %482 = OpString "scratch_locations" - %485 = OpString "stress_params" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_16 0 Offset 0 - OpDecorate %_struct_16 Block - OpDecorate %18 DescriptorSet 0 - OpDecorate %18 Binding 0 - OpDecorate %19 DescriptorSet 0 - OpDecorate %19 Binding 1 - OpDecorate %20 DescriptorSet 0 - OpDecorate %20 Binding 2 - OpDecorate %21 DescriptorSet 0 - OpDecorate %21 Binding 3 - OpDecorate %22 DescriptorSet 0 - OpDecorate %22 Binding 4 - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 5 - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 6 - OpDecorate %6 SpecId 0 - OpDecorate %7 SpecId 1 - OpDecorate %8 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 - %6 = OpSpecConstant %uint 1 - %7 = OpSpecConstant %uint 1 - %8 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %6 %7 %8 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_16 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_16 = OpTypePointer StorageBuffer %_struct_16 - %void = OpTypeVoid - %26 = OpTypeFunction %void -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint - %uint_9 = OpConstant %uint 9 - %bool = OpTypeBool - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 - %uint_100 = OpConstant %uint 100 - %uint_7 = OpConstant %uint 7 -%uint_4294967295 = OpConstant %uint 4294967295 - %uint_10 = OpConstant %uint 10 - %uint_8 = OpConstant %uint 8 - %uint_11 = OpConstant %uint 11 - %uint_4 = OpConstant %uint 4 - %uint_5 = OpConstant %uint 5 - %uint_6 = OpConstant %uint 6 - %uint_64 = OpConstant %uint 64 - %uint_1023 = OpConstant %uint 1023 - %false = OpConstantFalse %bool - %uint_66 = OpConstant %uint 66 - %uint_68 = OpConstant %uint 68 - %true = OpConstantTrue %bool - %462 = OpUndef %uint - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant - %11 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input -%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input - %18 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %19 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %20 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %21 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %22 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %27 = OpFunction %void None %26 - %28 = OpLabel - %31 = OpAccessChain %_ptr_StorageBuffer_uint %21 %uint_0 %uint_0 - %32 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_0 - %34 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %35 = OpLoad %uint %34 - %37 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %38 = OpLoad %uint %37 - %39 = OpIAdd %uint %35 %38 - %40 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_0 %39 - %41 = OpLoad %uint %40 - %43 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_9 - %44 = OpLoad %uint %43 - %46 = OpUGreaterThanEqual %bool %41 %44 - OpSelectionMerge %203 None - OpBranchConditional %46 %49 %203 - %49 = OpLabel - %51 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_1 - %52 = OpLoad %uint %51 - %53 = OpINotEqual %bool %52 %uint_0 - OpSelectionMerge %201 None - OpBranchConditional %53 %56 %201 - %56 = OpLabel - %58 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_2 - %59 = OpLoad %uint %58 - %61 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_3 - %62 = OpLoad %uint %61 - %63 = OpINotEqual %bool %59 %uint_0 - OpSelectionMerge %199 None - OpBranchConditional %63 %66 %199 - %66 = OpLabel - %67 = OpPhi %uint %194 %193 %uint_0 %56 - OpLoopMerge %197 %193 None - OpBranch %70 - %70 = OpLabel - %71 = OpSGreaterThanEqual %bool %62 %uint_2 - OpSelectionMerge %124 None - OpBranchConditional %71 %74 %124 - %74 = OpLabel - %75 = OpSGreaterThanEqual %bool %62 %uint_3 - OpSelectionMerge %98 None - OpBranchConditional %75 %78 %98 - %78 = OpLabel - %79 = OpIEqual %bool %62 %uint_3 - OpSelectionMerge %95 None - OpBranchConditional %79 %82 %95 - %82 = OpLabel - %83 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %84 = OpLoad %uint %83 - %85 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %86 = OpLoad %uint %85 - %87 = OpIAdd %uint %84 %86 - %88 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %87 - %89 = OpLoad %uint %88 - %90 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %89 - %91 = OpLoad %uint %90 - %93 = OpULessThanEqual %bool %91 %uint_100 - OpBranch %95 - %95 = OpLabel - %96 = OpPhi %bool %93 %82 %true %78 - OpBranch %98 - %98 = OpLabel - %99 = OpPhi %bool %96 %95 %false %74 - %100 = OpPhi %bool %false %95 %true %74 - OpSelectionMerge %121 None - OpBranchConditional %100 %103 %121 - %103 = OpLabel - %104 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %105 = OpLoad %uint %104 - %106 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %107 = OpLoad %uint %106 - %108 = OpIAdd %uint %105 %107 - %109 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %108 - %110 = OpLoad %uint %109 - %111 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %110 - %112 = OpLoad %uint %111 - %113 = OpULessThanEqual %bool %112 %uint_100 - OpSelectionMerge %118 None - OpBranchConditional %113 %116 %118 - %116 = OpLabel - OpStore %111 %67 - OpBranch %118 - %118 = OpLabel - %119 = OpPhi %bool %true %116 %99 %103 - OpBranch %121 - %121 = OpLabel - %122 = OpPhi %bool %119 %118 %99 %98 - OpBranch %124 - %124 = OpLabel - %125 = OpPhi %bool %122 %121 %false %70 - %126 = OpPhi %bool %false %121 %true %70 - OpSelectionMerge %186 None - OpBranchConditional %126 %129 %186 - %129 = OpLabel - %130 = OpSGreaterThanEqual %bool %62 %uint_1 - OpSelectionMerge %153 None - OpBranchConditional %130 %133 %153 - %133 = OpLabel - %134 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %135 = OpLoad %uint %134 - %136 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %137 = OpLoad %uint %136 - %138 = OpIAdd %uint %135 %137 - %139 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %138 - %140 = OpLoad %uint %139 - %141 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %140 - OpStore %141 %67 - %142 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %143 = OpLoad %uint %142 - %144 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %145 = OpLoad %uint %144 - %146 = OpIAdd %uint %143 %145 - %147 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %146 - %148 = OpLoad %uint %147 - %149 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %148 - %150 = OpLoad %uint %149 - %151 = OpULessThanEqual %bool %150 %uint_100 - OpBranch %153 - %153 = OpLabel - %154 = OpPhi %bool %151 %133 %125 %129 - %155 = OpPhi %bool %false %133 %true %129 - OpSelectionMerge %183 None - OpBranchConditional %155 %158 %183 - %158 = OpLabel - %159 = OpIEqual %bool %62 %uint_0 - OpSelectionMerge %181 None - OpBranchConditional %159 %162 %181 - %162 = OpLabel - %163 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %164 = OpLoad %uint %163 - %165 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %166 = OpLoad %uint %165 - %167 = OpIAdd %uint %164 %166 - %168 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %167 - %169 = OpLoad %uint %168 - %170 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %169 - OpStore %170 %67 - %171 = OpIAdd %uint %67 %uint_1 - %172 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %173 = OpLoad %uint %172 - %174 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %175 = OpLoad %uint %174 - %176 = OpIAdd %uint %173 %175 - %177 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %176 - %178 = OpLoad %uint %177 - %179 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %178 - OpStore %179 %171 - OpBranch %181 - %181 = OpLabel - OpBranch %183 - %183 = OpLabel - %184 = OpPhi %bool %true %181 %154 %153 - OpBranch %186 - %186 = OpLabel - %187 = OpPhi %bool %184 %183 %125 %124 - OpBranchConditional %187 %189 %193 - %189 = OpLabel - %190 = OpIAdd %uint %67 %uint_1 - %191 = OpUGreaterThanEqual %bool %190 %59 - OpBranch %193 - %193 = OpLabel - %194 = OpPhi %uint %190 %189 %462 %186 - %195 = OpPhi %bool %191 %189 %true %186 - OpBranchConditional %195 %197 %66 - %197 = OpLabel - OpBranch %199 - %199 = OpLabel - OpBranch %201 - %201 = OpLabel - OpBranch %203 - %203 = OpLabel - %204 = OpPhi %bool %false %201 %true %28 - OpSelectionMerge %458 None - OpBranchConditional %204 %207 %458 - %207 = OpLabel - %208 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %209 = OpCompositeExtract %uint %208 0 - %210 = OpIMul %uint %209 %44 - %211 = OpIMul %uint %209 %41 - %212 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %213 = OpLoad %uint %212 - %214 = OpIAdd %uint %211 %213 - %216 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_7 - %217 = OpLoad %uint %216 - %218 = OpIMul %uint %217 %213 - %219 = OpUMod %uint %218 %209 - %220 = OpIAdd %uint %219 %211 - %221 = OpIAdd %uint %41 %uint_1 - %223 = OpIAdd %uint %44 %uint_4294967295 - %224 = OpUMod %uint %213 %223 - %225 = OpIAdd %uint %221 %224 - %226 = OpUMod %uint %225 %44 - %227 = OpIMul %uint %226 %209 - %228 = OpIAdd %uint %227 %219 - %230 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %231 = OpLoad %uint %230 - %232 = OpShiftLeftLogical %uint %214 %uint_1 - %233 = OpIMul %uint %232 %231 - %234 = OpShiftLeftLogical %uint %220 %uint_1 - %235 = OpIMul %uint %234 %231 - %237 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_8 - %238 = OpLoad %uint %237 - %239 = OpIMul %uint %238 %220 - %240 = OpUMod %uint %239 %210 - %241 = OpShiftLeftLogical %uint %231 %uint_1 - %242 = OpIMul %uint %241 %240 - %244 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_11 - %245 = OpLoad %uint %244 - %246 = OpIMul %uint %241 %228 - %247 = OpIMul %uint %228 %238 - %248 = OpUMod %uint %247 %210 - %249 = OpIMul %uint %241 %248 - %251 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_4 - %252 = OpLoad %uint %251 - %253 = OpINotEqual %bool %252 %uint_0 - OpSelectionMerge %400 None - OpBranchConditional %253 %256 %400 - %256 = OpLabel - %258 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_5 - %259 = OpLoad %uint %258 - %261 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_6 - %262 = OpLoad %uint %261 - %263 = OpINotEqual %bool %259 %uint_0 - OpSelectionMerge %398 None - OpBranchConditional %263 %266 %398 - %266 = OpLabel - %267 = OpPhi %uint %393 %392 %uint_0 %256 - OpLoopMerge %396 %392 None - OpBranch %270 - %270 = OpLabel - %271 = OpSGreaterThanEqual %bool %262 %uint_2 - OpSelectionMerge %323 None - OpBranchConditional %271 %274 %323 - %274 = OpLabel - %275 = OpSGreaterThanEqual %bool %262 %uint_3 - OpSelectionMerge %297 None - OpBranchConditional %275 %278 %297 - %278 = OpLabel - %279 = OpIEqual %bool %262 %uint_3 - OpSelectionMerge %294 None - OpBranchConditional %279 %282 %294 - %282 = OpLabel - %283 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %284 = OpLoad %uint %283 - %285 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %286 = OpLoad %uint %285 - %287 = OpIAdd %uint %284 %286 - %288 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %287 - %289 = OpLoad %uint %288 - %290 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %289 - %291 = OpLoad %uint %290 - %292 = OpULessThanEqual %bool %291 %uint_100 - OpBranch %294 - %294 = OpLabel - %295 = OpPhi %bool %292 %282 %true %278 - OpBranch %297 - %297 = OpLabel - %298 = OpPhi %bool %295 %294 %false %274 - %299 = OpPhi %bool %false %294 %true %274 - OpSelectionMerge %320 None - OpBranchConditional %299 %302 %320 - %302 = OpLabel - %303 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %304 = OpLoad %uint %303 - %305 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %306 = OpLoad %uint %305 - %307 = OpIAdd %uint %304 %306 - %308 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %307 - %309 = OpLoad %uint %308 - %310 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %309 - %311 = OpLoad %uint %310 - %312 = OpULessThanEqual %bool %311 %uint_100 - OpSelectionMerge %317 None - OpBranchConditional %312 %315 %317 - %315 = OpLabel - OpStore %310 %267 - OpBranch %317 - %317 = OpLabel - %318 = OpPhi %bool %true %315 %298 %302 - OpBranch %320 - %320 = OpLabel - %321 = OpPhi %bool %318 %317 %298 %297 - OpBranch %323 - %323 = OpLabel - %324 = OpPhi %bool %321 %320 %false %270 - %325 = OpPhi %bool %false %320 %true %270 - OpSelectionMerge %385 None - OpBranchConditional %325 %328 %385 - %328 = OpLabel - %329 = OpSGreaterThanEqual %bool %262 %uint_1 - OpSelectionMerge %352 None - OpBranchConditional %329 %332 %352 - %332 = OpLabel - %333 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %334 = OpLoad %uint %333 - %335 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %336 = OpLoad %uint %335 - %337 = OpIAdd %uint %334 %336 - %338 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %337 - %339 = OpLoad %uint %338 - %340 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %339 - OpStore %340 %267 - %341 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %342 = OpLoad %uint %341 - %343 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %344 = OpLoad %uint %343 - %345 = OpIAdd %uint %342 %344 - %346 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %345 - %347 = OpLoad %uint %346 - %348 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %347 - %349 = OpLoad %uint %348 - %350 = OpULessThanEqual %bool %349 %uint_100 - OpBranch %352 - %352 = OpLabel - %353 = OpPhi %bool %350 %332 %324 %328 - %354 = OpPhi %bool %false %332 %true %328 - OpSelectionMerge %382 None - OpBranchConditional %354 %357 %382 - %357 = OpLabel - %358 = OpIEqual %bool %262 %uint_0 - OpSelectionMerge %380 None - OpBranchConditional %358 %361 %380 - %361 = OpLabel - %362 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %363 = OpLoad %uint %362 - %364 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %365 = OpLoad %uint %364 - %366 = OpIAdd %uint %363 %365 - %367 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %366 - %368 = OpLoad %uint %367 - %369 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %368 - OpStore %369 %267 - %370 = OpIAdd %uint %267 %uint_1 - %371 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %372 = OpLoad %uint %371 - %373 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %374 = OpLoad %uint %373 - %375 = OpIAdd %uint %372 %374 - %376 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %375 - %377 = OpLoad %uint %376 - %378 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %377 - OpStore %378 %370 - OpBranch %380 - %380 = OpLabel - OpBranch %382 - %382 = OpLabel - %383 = OpPhi %bool %true %380 %353 %352 - OpBranch %385 - %385 = OpLabel - %386 = OpPhi %bool %383 %382 %324 %323 - OpBranchConditional %386 %388 %392 - %388 = OpLabel - %389 = OpIAdd %uint %267 %uint_1 - %390 = OpUGreaterThanEqual %bool %389 %259 - OpBranch %392 - %392 = OpLabel - %393 = OpPhi %uint %389 %388 %462 %385 - %394 = OpPhi %bool %390 %388 %true %385 - OpBranchConditional %394 %396 %266 - %396 = OpLabel - OpBranch %398 - %398 = OpLabel - OpBranch %400 - %400 = OpLabel - %401 = OpLoad %uint %32 - %402 = OpINotEqual %bool %401 %uint_0 - OpSelectionMerge %431 None - OpBranchConditional %402 %405 %431 - %405 = OpLabel - %406 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %407 = OpCompositeExtract %uint %406 0 - %408 = OpLoad %uint %43 - %409 = OpIMul %uint %407 %408 - %411 = OpAtomicIAdd %uint %31 %uint_1 %uint_64 %uint_1 - %412 = OpULessThan %bool %411 %409 - OpSelectionMerge %429 None - OpBranchConditional %412 %415 %429 - %415 = OpLabel - %416 = OpPhi %uint %418 %415 %uint_0 %405 - %417 = OpAtomicLoad %uint %31 %uint_1 %uint_64 - %418 = OpIAdd %uint %416 %uint_1 - %420 = OpULessThan %bool %416 %uint_1023 - %421 = OpULessThan %bool %417 %409 - %423 = OpSelect %bool %420 %421 %false - %424 = OpLogicalNot %bool %423 - OpLoopMerge %427 %415 None - OpBranchConditional %424 %427 %415 - %427 = OpLabel - OpBranch %429 - %429 = OpLabel - OpBranch %431 - %431 = OpLabel - %432 = OpINotEqual %bool %213 %219 - OpSelectionMerge %456 None - OpBranchConditional %432 %435 %456 - %435 = OpLabel - %436 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %233 - OpAtomicStore %436 %uint_1 %uint_64 %uint_1 - %437 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %235 - %438 = OpAtomicLoad %uint %437 %uint_1 %uint_64 - %439 = OpIAdd %uint %242 %245 - %440 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %439 - OpAtomicStore %440 %uint_1 %uint_64 %438 - %441 = OpIAdd %uint %249 %245 - %442 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %441 - %444 = OpAtomicLoad %uint %442 %uint_1 %uint_66 - %445 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %246 - %446 = OpAtomicLoad %uint %445 %uint_1 %uint_64 - %447 = OpIMul %uint %220 %uint_3 - %448 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %447 - OpAtomicStore %448 %uint_1 %uint_68 %438 - %450 = OpIMul %uint %228 %uint_3 - %451 = OpIAdd %uint %450 %uint_1 - %452 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %451 - OpAtomicStore %452 %uint_1 %uint_68 %444 - %453 = OpIAdd %uint %450 %uint_2 - %454 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %453 - OpAtomicStore %454 %uint_1 %uint_68 %446 - OpBranch %456 - %456 = OpLabel - OpBranch %458 - %458 = OpLabel - OpBranch %460 - %460 = OpLabel - OpReturn - OpFunctionEnd - %489 = OpExtInst %void %463 PushConstantRegionGroupOffset %uint_0 %uint_12 - %466 = OpExtInst %void %463 Kernel %27 %464 %uint_7 %uint_0 %465 - %468 = OpExtInst %void %463 ArgumentInfo %467 - %469 = OpExtInst %void %463 ArgumentStorageBuffer %466 %uint_0 %uint_0 %uint_0 %468 - %471 = OpExtInst %void %463 ArgumentInfo %470 - %472 = OpExtInst %void %463 ArgumentStorageBuffer %466 %uint_1 %uint_0 %uint_1 %471 - %474 = OpExtInst %void %463 ArgumentInfo %473 - %475 = OpExtInst %void %463 ArgumentStorageBuffer %466 %uint_2 %uint_0 %uint_2 %474 - %477 = OpExtInst %void %463 ArgumentInfo %476 - %478 = OpExtInst %void %463 ArgumentStorageBuffer %466 %uint_3 %uint_0 %uint_3 %477 - %480 = OpExtInst %void %463 ArgumentInfo %479 - %481 = OpExtInst %void %463 ArgumentStorageBuffer %466 %uint_4 %uint_0 %uint_4 %480 - %483 = OpExtInst %void %463 ArgumentInfo %482 - %484 = OpExtInst %void %463 ArgumentStorageBuffer %466 %uint_5 %uint_0 %uint_5 %483 - %486 = OpExtInst %void %463 ArgumentInfo %485 - %487 = OpExtInst %void %463 ArgumentStorageBuffer %466 %uint_6 %uint_0 %uint_6 %486 - %490 = OpExtInst %void %463 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/wrc-addr-dep.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/wrc-addr-dep.spv.dis deleted file mode 100644 index eb3ebff7fb..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/wrc-addr-dep.spv.dis +++ /dev/null @@ -1,542 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 492 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %464 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %27 "litmus_test" %gl_LocalInvocationID %gl_WorkGroupID - OpSource OpenCL_C 200 - %465 = OpString "litmus_test" - %466 = OpString " __kernel" - %468 = OpString "test_locations" - %471 = OpString "read_results" - %474 = OpString "shuffled_workgroups" - %477 = OpString "barrier" - %480 = OpString "scratchpad" - %483 = OpString "scratch_locations" - %486 = OpString "stress_params" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_16 0 Offset 0 - OpDecorate %_struct_16 Block - OpDecorate %18 DescriptorSet 0 - OpDecorate %18 Binding 0 - OpDecorate %19 DescriptorSet 0 - OpDecorate %19 Binding 1 - OpDecorate %20 DescriptorSet 0 - OpDecorate %20 Binding 2 - OpDecorate %21 DescriptorSet 0 - OpDecorate %21 Binding 3 - OpDecorate %22 DescriptorSet 0 - OpDecorate %22 Binding 4 - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 5 - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 6 - OpDecorate %6 SpecId 0 - OpDecorate %7 SpecId 1 - OpDecorate %8 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 - %6 = OpSpecConstant %uint 1 - %7 = OpSpecConstant %uint 1 - %8 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %6 %7 %8 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_16 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_16 = OpTypePointer StorageBuffer %_struct_16 - %void = OpTypeVoid - %26 = OpTypeFunction %void -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint - %uint_9 = OpConstant %uint 9 - %bool = OpTypeBool - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 - %uint_100 = OpConstant %uint 100 - %uint_7 = OpConstant %uint 7 -%uint_4294967295 = OpConstant %uint 4294967295 - %uint_10 = OpConstant %uint 10 - %uint_8 = OpConstant %uint 8 - %uint_11 = OpConstant %uint 11 - %uint_4 = OpConstant %uint 4 - %uint_5 = OpConstant %uint 5 - %uint_6 = OpConstant %uint 6 - %uint_64 = OpConstant %uint 64 - %uint_1023 = OpConstant %uint 1023 - %false = OpConstantFalse %bool - %uint_68 = OpConstant %uint 68 - %true = OpConstantTrue %bool - %463 = OpUndef %uint - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant - %11 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input -%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input - %18 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %19 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %20 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %21 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %22 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %27 = OpFunction %void None %26 - %28 = OpLabel - %31 = OpAccessChain %_ptr_StorageBuffer_uint %21 %uint_0 %uint_0 - %32 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_0 - %34 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %35 = OpLoad %uint %34 - %37 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %38 = OpLoad %uint %37 - %39 = OpIAdd %uint %35 %38 - %40 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_0 %39 - %41 = OpLoad %uint %40 - %43 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_9 - %44 = OpLoad %uint %43 - %46 = OpUGreaterThanEqual %bool %41 %44 - OpSelectionMerge %203 None - OpBranchConditional %46 %49 %203 - %49 = OpLabel - %51 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_1 - %52 = OpLoad %uint %51 - %53 = OpINotEqual %bool %52 %uint_0 - OpSelectionMerge %201 None - OpBranchConditional %53 %56 %201 - %56 = OpLabel - %58 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_2 - %59 = OpLoad %uint %58 - %61 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_3 - %62 = OpLoad %uint %61 - %63 = OpINotEqual %bool %59 %uint_0 - OpSelectionMerge %199 None - OpBranchConditional %63 %66 %199 - %66 = OpLabel - %67 = OpPhi %uint %194 %193 %uint_0 %56 - OpLoopMerge %197 %193 None - OpBranch %70 - %70 = OpLabel - %71 = OpSGreaterThanEqual %bool %62 %uint_2 - OpSelectionMerge %124 None - OpBranchConditional %71 %74 %124 - %74 = OpLabel - %75 = OpSGreaterThanEqual %bool %62 %uint_3 - OpSelectionMerge %98 None - OpBranchConditional %75 %78 %98 - %78 = OpLabel - %79 = OpIEqual %bool %62 %uint_3 - OpSelectionMerge %95 None - OpBranchConditional %79 %82 %95 - %82 = OpLabel - %83 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %84 = OpLoad %uint %83 - %85 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %86 = OpLoad %uint %85 - %87 = OpIAdd %uint %84 %86 - %88 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %87 - %89 = OpLoad %uint %88 - %90 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %89 - %91 = OpLoad %uint %90 - %93 = OpULessThanEqual %bool %91 %uint_100 - OpBranch %95 - %95 = OpLabel - %96 = OpPhi %bool %93 %82 %true %78 - OpBranch %98 - %98 = OpLabel - %99 = OpPhi %bool %96 %95 %false %74 - %100 = OpPhi %bool %false %95 %true %74 - OpSelectionMerge %121 None - OpBranchConditional %100 %103 %121 - %103 = OpLabel - %104 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %105 = OpLoad %uint %104 - %106 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %107 = OpLoad %uint %106 - %108 = OpIAdd %uint %105 %107 - %109 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %108 - %110 = OpLoad %uint %109 - %111 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %110 - %112 = OpLoad %uint %111 - %113 = OpULessThanEqual %bool %112 %uint_100 - OpSelectionMerge %118 None - OpBranchConditional %113 %116 %118 - %116 = OpLabel - OpStore %111 %67 - OpBranch %118 - %118 = OpLabel - %119 = OpPhi %bool %true %116 %99 %103 - OpBranch %121 - %121 = OpLabel - %122 = OpPhi %bool %119 %118 %99 %98 - OpBranch %124 - %124 = OpLabel - %125 = OpPhi %bool %122 %121 %false %70 - %126 = OpPhi %bool %false %121 %true %70 - OpSelectionMerge %186 None - OpBranchConditional %126 %129 %186 - %129 = OpLabel - %130 = OpSGreaterThanEqual %bool %62 %uint_1 - OpSelectionMerge %153 None - OpBranchConditional %130 %133 %153 - %133 = OpLabel - %134 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %135 = OpLoad %uint %134 - %136 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %137 = OpLoad %uint %136 - %138 = OpIAdd %uint %135 %137 - %139 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %138 - %140 = OpLoad %uint %139 - %141 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %140 - OpStore %141 %67 - %142 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %143 = OpLoad %uint %142 - %144 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %145 = OpLoad %uint %144 - %146 = OpIAdd %uint %143 %145 - %147 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %146 - %148 = OpLoad %uint %147 - %149 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %148 - %150 = OpLoad %uint %149 - %151 = OpULessThanEqual %bool %150 %uint_100 - OpBranch %153 - %153 = OpLabel - %154 = OpPhi %bool %151 %133 %125 %129 - %155 = OpPhi %bool %false %133 %true %129 - OpSelectionMerge %183 None - OpBranchConditional %155 %158 %183 - %158 = OpLabel - %159 = OpIEqual %bool %62 %uint_0 - OpSelectionMerge %181 None - OpBranchConditional %159 %162 %181 - %162 = OpLabel - %163 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %164 = OpLoad %uint %163 - %165 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %166 = OpLoad %uint %165 - %167 = OpIAdd %uint %164 %166 - %168 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %167 - %169 = OpLoad %uint %168 - %170 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %169 - OpStore %170 %67 - %171 = OpIAdd %uint %67 %uint_1 - %172 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %173 = OpLoad %uint %172 - %174 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %175 = OpLoad %uint %174 - %176 = OpIAdd %uint %173 %175 - %177 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %176 - %178 = OpLoad %uint %177 - %179 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %178 - OpStore %179 %171 - OpBranch %181 - %181 = OpLabel - OpBranch %183 - %183 = OpLabel - %184 = OpPhi %bool %true %181 %154 %153 - OpBranch %186 - %186 = OpLabel - %187 = OpPhi %bool %184 %183 %125 %124 - OpBranchConditional %187 %189 %193 - %189 = OpLabel - %190 = OpIAdd %uint %67 %uint_1 - %191 = OpUGreaterThanEqual %bool %190 %59 - OpBranch %193 - %193 = OpLabel - %194 = OpPhi %uint %190 %189 %463 %186 - %195 = OpPhi %bool %191 %189 %true %186 - OpBranchConditional %195 %197 %66 - %197 = OpLabel - OpBranch %199 - %199 = OpLabel - OpBranch %201 - %201 = OpLabel - OpBranch %203 - %203 = OpLabel - %204 = OpPhi %bool %false %201 %true %28 - OpSelectionMerge %459 None - OpBranchConditional %204 %207 %459 - %207 = OpLabel - %208 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %209 = OpCompositeExtract %uint %208 0 - %210 = OpIMul %uint %209 %44 - %211 = OpIMul %uint %209 %41 - %212 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %213 = OpLoad %uint %212 - %214 = OpIAdd %uint %211 %213 - %216 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_7 - %217 = OpLoad %uint %216 - %218 = OpIMul %uint %217 %213 - %219 = OpUMod %uint %218 %209 - %220 = OpIAdd %uint %219 %211 - %221 = OpIAdd %uint %41 %uint_1 - %223 = OpIAdd %uint %44 %uint_4294967295 - %224 = OpUMod %uint %213 %223 - %225 = OpIAdd %uint %221 %224 - %226 = OpUMod %uint %225 %44 - %227 = OpIMul %uint %226 %209 - %228 = OpIAdd %uint %227 %219 - %230 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %231 = OpLoad %uint %230 - %232 = OpShiftLeftLogical %uint %214 %uint_1 - %233 = OpIMul %uint %232 %231 - %234 = OpShiftLeftLogical %uint %220 %uint_1 - %235 = OpIMul %uint %234 %231 - %237 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_8 - %238 = OpLoad %uint %237 - %239 = OpIMul %uint %238 %220 - %240 = OpUMod %uint %239 %210 - %241 = OpShiftLeftLogical %uint %231 %uint_1 - %242 = OpIMul %uint %241 %240 - %244 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_11 - %245 = OpLoad %uint %244 - %246 = OpIMul %uint %241 %228 - %247 = OpIMul %uint %228 %238 - %248 = OpUMod %uint %247 %210 - %249 = OpIMul %uint %241 %248 - %251 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_4 - %252 = OpLoad %uint %251 - %253 = OpINotEqual %bool %252 %uint_0 - OpSelectionMerge %400 None - OpBranchConditional %253 %256 %400 - %256 = OpLabel - %258 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_5 - %259 = OpLoad %uint %258 - %261 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_6 - %262 = OpLoad %uint %261 - %263 = OpINotEqual %bool %259 %uint_0 - OpSelectionMerge %398 None - OpBranchConditional %263 %266 %398 - %266 = OpLabel - %267 = OpPhi %uint %393 %392 %uint_0 %256 - OpLoopMerge %396 %392 None - OpBranch %270 - %270 = OpLabel - %271 = OpSGreaterThanEqual %bool %262 %uint_2 - OpSelectionMerge %323 None - OpBranchConditional %271 %274 %323 - %274 = OpLabel - %275 = OpSGreaterThanEqual %bool %262 %uint_3 - OpSelectionMerge %297 None - OpBranchConditional %275 %278 %297 - %278 = OpLabel - %279 = OpIEqual %bool %262 %uint_3 - OpSelectionMerge %294 None - OpBranchConditional %279 %282 %294 - %282 = OpLabel - %283 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %284 = OpLoad %uint %283 - %285 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %286 = OpLoad %uint %285 - %287 = OpIAdd %uint %284 %286 - %288 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %287 - %289 = OpLoad %uint %288 - %290 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %289 - %291 = OpLoad %uint %290 - %292 = OpULessThanEqual %bool %291 %uint_100 - OpBranch %294 - %294 = OpLabel - %295 = OpPhi %bool %292 %282 %true %278 - OpBranch %297 - %297 = OpLabel - %298 = OpPhi %bool %295 %294 %false %274 - %299 = OpPhi %bool %false %294 %true %274 - OpSelectionMerge %320 None - OpBranchConditional %299 %302 %320 - %302 = OpLabel - %303 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %304 = OpLoad %uint %303 - %305 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %306 = OpLoad %uint %305 - %307 = OpIAdd %uint %304 %306 - %308 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %307 - %309 = OpLoad %uint %308 - %310 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %309 - %311 = OpLoad %uint %310 - %312 = OpULessThanEqual %bool %311 %uint_100 - OpSelectionMerge %317 None - OpBranchConditional %312 %315 %317 - %315 = OpLabel - OpStore %310 %267 - OpBranch %317 - %317 = OpLabel - %318 = OpPhi %bool %true %315 %298 %302 - OpBranch %320 - %320 = OpLabel - %321 = OpPhi %bool %318 %317 %298 %297 - OpBranch %323 - %323 = OpLabel - %324 = OpPhi %bool %321 %320 %false %270 - %325 = OpPhi %bool %false %320 %true %270 - OpSelectionMerge %385 None - OpBranchConditional %325 %328 %385 - %328 = OpLabel - %329 = OpSGreaterThanEqual %bool %262 %uint_1 - OpSelectionMerge %352 None - OpBranchConditional %329 %332 %352 - %332 = OpLabel - %333 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %334 = OpLoad %uint %333 - %335 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %336 = OpLoad %uint %335 - %337 = OpIAdd %uint %334 %336 - %338 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %337 - %339 = OpLoad %uint %338 - %340 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %339 - OpStore %340 %267 - %341 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %342 = OpLoad %uint %341 - %343 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %344 = OpLoad %uint %343 - %345 = OpIAdd %uint %342 %344 - %346 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %345 - %347 = OpLoad %uint %346 - %348 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %347 - %349 = OpLoad %uint %348 - %350 = OpULessThanEqual %bool %349 %uint_100 - OpBranch %352 - %352 = OpLabel - %353 = OpPhi %bool %350 %332 %324 %328 - %354 = OpPhi %bool %false %332 %true %328 - OpSelectionMerge %382 None - OpBranchConditional %354 %357 %382 - %357 = OpLabel - %358 = OpIEqual %bool %262 %uint_0 - OpSelectionMerge %380 None - OpBranchConditional %358 %361 %380 - %361 = OpLabel - %362 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %363 = OpLoad %uint %362 - %364 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %365 = OpLoad %uint %364 - %366 = OpIAdd %uint %363 %365 - %367 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %366 - %368 = OpLoad %uint %367 - %369 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %368 - OpStore %369 %267 - %370 = OpIAdd %uint %267 %uint_1 - %371 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %372 = OpLoad %uint %371 - %373 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %374 = OpLoad %uint %373 - %375 = OpIAdd %uint %372 %374 - %376 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %375 - %377 = OpLoad %uint %376 - %378 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %377 - OpStore %378 %370 - OpBranch %380 - %380 = OpLabel - OpBranch %382 - %382 = OpLabel - %383 = OpPhi %bool %true %380 %353 %352 - OpBranch %385 - %385 = OpLabel - %386 = OpPhi %bool %383 %382 %324 %323 - OpBranchConditional %386 %388 %392 - %388 = OpLabel - %389 = OpIAdd %uint %267 %uint_1 - %390 = OpUGreaterThanEqual %bool %389 %259 - OpBranch %392 - %392 = OpLabel - %393 = OpPhi %uint %389 %388 %463 %385 - %394 = OpPhi %bool %390 %388 %true %385 - OpBranchConditional %394 %396 %266 - %396 = OpLabel - OpBranch %398 - %398 = OpLabel - OpBranch %400 - %400 = OpLabel - %401 = OpLoad %uint %32 - %402 = OpINotEqual %bool %401 %uint_0 - OpSelectionMerge %431 None - OpBranchConditional %402 %405 %431 - %405 = OpLabel - %406 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %407 = OpCompositeExtract %uint %406 0 - %408 = OpLoad %uint %43 - %409 = OpIMul %uint %407 %408 - %411 = OpAtomicIAdd %uint %31 %uint_1 %uint_64 %uint_1 - %412 = OpULessThan %bool %411 %409 - OpSelectionMerge %429 None - OpBranchConditional %412 %415 %429 - %415 = OpLabel - %416 = OpPhi %uint %418 %415 %uint_0 %405 - %417 = OpAtomicLoad %uint %31 %uint_1 %uint_64 - %418 = OpIAdd %uint %416 %uint_1 - %420 = OpULessThan %bool %416 %uint_1023 - %421 = OpULessThan %bool %417 %409 - %423 = OpSelect %bool %420 %421 %false - %424 = OpLogicalNot %bool %423 - OpLoopMerge %427 %415 None - OpBranchConditional %424 %427 %415 - %427 = OpLabel - OpBranch %429 - %429 = OpLabel - OpBranch %431 - %431 = OpLabel - %432 = OpINotEqual %bool %213 %219 - OpSelectionMerge %457 None - OpBranchConditional %432 %435 %457 - %435 = OpLabel - %436 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %233 - OpAtomicStore %436 %uint_1 %uint_64 %uint_1 - %437 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %235 - %438 = OpAtomicLoad %uint %437 %uint_1 %uint_64 - %439 = OpIAdd %uint %242 %245 - %440 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %439 - OpAtomicStore %440 %uint_1 %uint_64 %438 - %441 = OpIAdd %uint %249 %245 - %442 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %441 - %443 = OpAtomicLoad %uint %442 %uint_1 %uint_64 - %444 = OpShiftRightLogical %uint %443 %uint_1 - %445 = OpIAdd %uint %246 %444 - %446 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %445 - %447 = OpAtomicLoad %uint %446 %uint_1 %uint_64 - %448 = OpIMul %uint %220 %uint_3 - %449 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %448 - OpAtomicStore %449 %uint_1 %uint_68 %438 - %451 = OpIMul %uint %228 %uint_3 - %452 = OpIAdd %uint %451 %uint_2 - %453 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %452 - OpAtomicStore %453 %uint_1 %uint_68 %447 - %454 = OpIAdd %uint %451 %uint_1 - %455 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %454 - OpAtomicStore %455 %uint_1 %uint_68 %443 - OpBranch %457 - %457 = OpLabel - OpBranch %459 - %459 = OpLabel - OpBranch %461 - %461 = OpLabel - OpReturn - OpFunctionEnd - %490 = OpExtInst %void %464 PushConstantRegionGroupOffset %uint_0 %uint_12 - %467 = OpExtInst %void %464 Kernel %27 %465 %uint_7 %uint_0 %466 - %469 = OpExtInst %void %464 ArgumentInfo %468 - %470 = OpExtInst %void %464 ArgumentStorageBuffer %467 %uint_0 %uint_0 %uint_0 %469 - %472 = OpExtInst %void %464 ArgumentInfo %471 - %473 = OpExtInst %void %464 ArgumentStorageBuffer %467 %uint_1 %uint_0 %uint_1 %472 - %475 = OpExtInst %void %464 ArgumentInfo %474 - %476 = OpExtInst %void %464 ArgumentStorageBuffer %467 %uint_2 %uint_0 %uint_2 %475 - %478 = OpExtInst %void %464 ArgumentInfo %477 - %479 = OpExtInst %void %464 ArgumentStorageBuffer %467 %uint_3 %uint_0 %uint_3 %478 - %481 = OpExtInst %void %464 ArgumentInfo %480 - %482 = OpExtInst %void %464 ArgumentStorageBuffer %467 %uint_4 %uint_0 %uint_4 %481 - %484 = OpExtInst %void %464 ArgumentInfo %483 - %485 = OpExtInst %void %464 ArgumentStorageBuffer %467 %uint_5 %uint_0 %uint_5 %484 - %487 = OpExtInst %void %464 ArgumentInfo %486 - %488 = OpExtInst %void %464 ArgumentStorageBuffer %467 %uint_6 %uint_0 %uint_6 %487 - %491 = OpExtInst %void %464 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/wrc-rel-acq.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/wrc-rel-acq.spv.dis deleted file mode 100644 index e283466eb0..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/wrc-rel-acq.spv.dis +++ /dev/null @@ -1,534 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 484 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %457 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %27 "litmus_test" %gl_LocalInvocationID %gl_WorkGroupID - OpSource OpenCL_C 200 - %458 = OpString "litmus_test" - %460 = OpString "test_locations" - %463 = OpString "read_results" - %466 = OpString "shuffled_workgroups" - %469 = OpString "barrier" - %472 = OpString "scratchpad" - %475 = OpString "scratch_locations" - %478 = OpString "stress_params" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_16 0 Offset 0 - OpDecorate %_struct_16 Block - OpDecorate %18 DescriptorSet 0 - OpDecorate %18 Binding 0 - OpDecorate %19 DescriptorSet 0 - OpDecorate %19 Binding 1 - OpDecorate %20 DescriptorSet 0 - OpDecorate %20 Binding 2 - OpDecorate %21 DescriptorSet 0 - OpDecorate %21 Binding 3 - OpDecorate %22 DescriptorSet 0 - OpDecorate %22 Binding 4 - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 5 - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 6 - OpDecorate %6 SpecId 0 - OpDecorate %7 SpecId 1 - OpDecorate %8 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 - %6 = OpSpecConstant %uint 1 - %7 = OpSpecConstant %uint 1 - %8 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %6 %7 %8 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_16 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_16 = OpTypePointer StorageBuffer %_struct_16 - %void = OpTypeVoid - %26 = OpTypeFunction %void -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint - %uint_9 = OpConstant %uint 9 - %bool = OpTypeBool - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 - %uint_100 = OpConstant %uint 100 - %uint_7 = OpConstant %uint 7 -%uint_4294967295 = OpConstant %uint 4294967295 - %uint_10 = OpConstant %uint 10 - %uint_8 = OpConstant %uint 8 - %uint_11 = OpConstant %uint 11 - %uint_4 = OpConstant %uint 4 - %uint_5 = OpConstant %uint 5 - %uint_6 = OpConstant %uint 6 - %uint_64 = OpConstant %uint 64 - %uint_1023 = OpConstant %uint 1023 - %false = OpConstantFalse %bool - %uint_68 = OpConstant %uint 68 - %uint_66 = OpConstant %uint 66 - %true = OpConstantTrue %bool - %456 = OpUndef %uint - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant - %11 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input -%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input - %18 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %19 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %20 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %21 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %22 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %27 = OpFunction %void None %26 - %28 = OpLabel - %31 = OpAccessChain %_ptr_StorageBuffer_uint %21 %uint_0 %uint_0 - %32 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_0 - %34 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %35 = OpLoad %uint %34 - %37 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %38 = OpLoad %uint %37 - %39 = OpIAdd %uint %38 %35 - %40 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_0 %39 - %41 = OpLoad %uint %40 - %43 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_9 - %44 = OpLoad %uint %43 - %46 = OpUGreaterThanEqual %bool %41 %44 - OpSelectionMerge %203 None - OpBranchConditional %46 %49 %203 - %49 = OpLabel - %51 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_1 - %52 = OpLoad %uint %51 - %53 = OpINotEqual %bool %52 %uint_0 - OpSelectionMerge %201 None - OpBranchConditional %53 %56 %201 - %56 = OpLabel - %58 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_2 - %59 = OpLoad %uint %58 - %61 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_3 - %62 = OpLoad %uint %61 - %63 = OpINotEqual %bool %59 %uint_0 - OpSelectionMerge %199 None - OpBranchConditional %63 %66 %199 - %66 = OpLabel - %67 = OpPhi %uint %194 %193 %uint_0 %56 - OpLoopMerge %197 %193 None - OpBranch %70 - %70 = OpLabel - %71 = OpSGreaterThanEqual %bool %62 %uint_2 - OpSelectionMerge %124 None - OpBranchConditional %71 %74 %124 - %74 = OpLabel - %75 = OpSGreaterThanEqual %bool %62 %uint_3 - OpSelectionMerge %98 None - OpBranchConditional %75 %78 %98 - %78 = OpLabel - %79 = OpIEqual %bool %62 %uint_3 - OpSelectionMerge %95 None - OpBranchConditional %79 %82 %95 - %82 = OpLabel - %83 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %84 = OpLoad %uint %83 - %85 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %86 = OpLoad %uint %85 - %87 = OpIAdd %uint %86 %84 - %88 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %87 - %89 = OpLoad %uint %88 - %90 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %89 - %91 = OpLoad %uint %90 - %93 = OpULessThanEqual %bool %91 %uint_100 - OpBranch %95 - %95 = OpLabel - %96 = OpPhi %bool %93 %82 %true %78 - OpBranch %98 - %98 = OpLabel - %99 = OpPhi %bool %96 %95 %false %74 - %100 = OpPhi %bool %false %95 %true %74 - OpSelectionMerge %121 None - OpBranchConditional %100 %103 %121 - %103 = OpLabel - %104 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %105 = OpLoad %uint %104 - %106 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %107 = OpLoad %uint %106 - %108 = OpIAdd %uint %107 %105 - %109 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %108 - %110 = OpLoad %uint %109 - %111 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %110 - %112 = OpLoad %uint %111 - %113 = OpULessThanEqual %bool %112 %uint_100 - OpSelectionMerge %118 None - OpBranchConditional %113 %116 %118 - %116 = OpLabel - OpStore %111 %67 - OpBranch %118 - %118 = OpLabel - %119 = OpPhi %bool %true %116 %99 %103 - OpBranch %121 - %121 = OpLabel - %122 = OpPhi %bool %119 %118 %99 %98 - OpBranch %124 - %124 = OpLabel - %125 = OpPhi %bool %122 %121 %false %70 - %126 = OpPhi %bool %false %121 %true %70 - OpSelectionMerge %186 None - OpBranchConditional %126 %129 %186 - %129 = OpLabel - %130 = OpSGreaterThanEqual %bool %62 %uint_1 - OpSelectionMerge %153 None - OpBranchConditional %130 %133 %153 - %133 = OpLabel - %134 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %135 = OpLoad %uint %134 - %136 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %137 = OpLoad %uint %136 - %138 = OpIAdd %uint %137 %135 - %139 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %138 - %140 = OpLoad %uint %139 - %141 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %140 - OpStore %141 %67 - %142 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %143 = OpLoad %uint %142 - %144 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %145 = OpLoad %uint %144 - %146 = OpIAdd %uint %145 %143 - %147 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %146 - %148 = OpLoad %uint %147 - %149 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %148 - %150 = OpLoad %uint %149 - %151 = OpULessThanEqual %bool %150 %uint_100 - OpBranch %153 - %153 = OpLabel - %154 = OpPhi %bool %151 %133 %125 %129 - %155 = OpPhi %bool %false %133 %true %129 - OpSelectionMerge %183 None - OpBranchConditional %155 %158 %183 - %158 = OpLabel - %159 = OpIEqual %bool %62 %uint_0 - OpSelectionMerge %181 None - OpBranchConditional %159 %162 %181 - %162 = OpLabel - %163 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %164 = OpLoad %uint %163 - %165 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %166 = OpLoad %uint %165 - %167 = OpIAdd %uint %166 %164 - %168 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %167 - %169 = OpLoad %uint %168 - %170 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %169 - OpStore %170 %67 - %171 = OpIAdd %uint %67 %uint_1 - %172 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %173 = OpLoad %uint %172 - %174 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %175 = OpLoad %uint %174 - %176 = OpIAdd %uint %175 %173 - %177 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %176 - %178 = OpLoad %uint %177 - %179 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %178 - OpStore %179 %171 - OpBranch %181 - %181 = OpLabel - OpBranch %183 - %183 = OpLabel - %184 = OpPhi %bool %true %181 %154 %153 - OpBranch %186 - %186 = OpLabel - %187 = OpPhi %bool %184 %183 %125 %124 - OpBranchConditional %187 %189 %193 - %189 = OpLabel - %190 = OpIAdd %uint %67 %uint_1 - %191 = OpUGreaterThanEqual %bool %190 %59 - OpBranch %193 - %193 = OpLabel - %194 = OpPhi %uint %190 %189 %456 %186 - %195 = OpPhi %bool %191 %189 %true %186 - OpBranchConditional %195 %197 %66 - %197 = OpLabel - OpBranch %199 - %199 = OpLabel - OpBranch %201 - %201 = OpLabel - OpBranch %203 - %203 = OpLabel - %204 = OpPhi %bool %false %201 %true %28 - OpSelectionMerge %452 None - OpBranchConditional %204 %207 %452 - %207 = OpLabel - %208 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %209 = OpCompositeExtract %uint %208 0 - %210 = OpIMul %uint %209 %44 - %211 = OpIMul %uint %209 %41 - %212 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %213 = OpLoad %uint %212 - %214 = OpIAdd %uint %211 %213 - %216 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_7 - %217 = OpLoad %uint %216 - %218 = OpIMul %uint %217 %213 - %219 = OpUMod %uint %218 %209 - %220 = OpIAdd %uint %219 %211 - %221 = OpIAdd %uint %41 %uint_1 - %223 = OpIAdd %uint %44 %uint_4294967295 - %224 = OpUMod %uint %213 %223 - %225 = OpIAdd %uint %221 %224 - %226 = OpUMod %uint %225 %44 - %227 = OpIMul %uint %226 %209 - %228 = OpIAdd %uint %227 %219 - %230 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %231 = OpLoad %uint %230 - %232 = OpShiftLeftLogical %uint %214 %uint_1 - %233 = OpIMul %uint %232 %231 - %234 = OpShiftLeftLogical %uint %220 %uint_1 - %235 = OpIMul %uint %234 %231 - %237 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_8 - %238 = OpLoad %uint %237 - %239 = OpIMul %uint %238 %220 - %240 = OpUMod %uint %239 %210 - %241 = OpShiftLeftLogical %uint %231 %uint_1 - %242 = OpIMul %uint %241 %240 - %244 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_11 - %245 = OpLoad %uint %244 - %246 = OpIAdd %uint %242 %245 - %247 = OpIMul %uint %241 %228 - %248 = OpIMul %uint %228 %238 - %249 = OpUMod %uint %248 %210 - %250 = OpIMul %uint %241 %249 - %251 = OpIAdd %uint %250 %245 - %253 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_4 - %254 = OpLoad %uint %253 - %255 = OpINotEqual %bool %254 %uint_0 - OpSelectionMerge %402 None - OpBranchConditional %255 %258 %402 - %258 = OpLabel - %260 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_5 - %261 = OpLoad %uint %260 - %263 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_6 - %264 = OpLoad %uint %263 - %265 = OpINotEqual %bool %261 %uint_0 - OpSelectionMerge %400 None - OpBranchConditional %265 %268 %400 - %268 = OpLabel - %269 = OpPhi %uint %395 %394 %uint_0 %258 - OpLoopMerge %398 %394 None - OpBranch %272 - %272 = OpLabel - %273 = OpSGreaterThanEqual %bool %264 %uint_2 - OpSelectionMerge %325 None - OpBranchConditional %273 %276 %325 - %276 = OpLabel - %277 = OpSGreaterThanEqual %bool %264 %uint_3 - OpSelectionMerge %299 None - OpBranchConditional %277 %280 %299 - %280 = OpLabel - %281 = OpIEqual %bool %264 %uint_3 - OpSelectionMerge %296 None - OpBranchConditional %281 %284 %296 - %284 = OpLabel - %285 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %286 = OpLoad %uint %285 - %287 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %288 = OpLoad %uint %287 - %289 = OpIAdd %uint %288 %286 - %290 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %289 - %291 = OpLoad %uint %290 - %292 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %291 - %293 = OpLoad %uint %292 - %294 = OpULessThanEqual %bool %293 %uint_100 - OpBranch %296 - %296 = OpLabel - %297 = OpPhi %bool %294 %284 %true %280 - OpBranch %299 - %299 = OpLabel - %300 = OpPhi %bool %297 %296 %false %276 - %301 = OpPhi %bool %false %296 %true %276 - OpSelectionMerge %322 None - OpBranchConditional %301 %304 %322 - %304 = OpLabel - %305 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %306 = OpLoad %uint %305 - %307 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %308 = OpLoad %uint %307 - %309 = OpIAdd %uint %308 %306 - %310 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %309 - %311 = OpLoad %uint %310 - %312 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %311 - %313 = OpLoad %uint %312 - %314 = OpULessThanEqual %bool %313 %uint_100 - OpSelectionMerge %319 None - OpBranchConditional %314 %317 %319 - %317 = OpLabel - OpStore %312 %269 - OpBranch %319 - %319 = OpLabel - %320 = OpPhi %bool %true %317 %300 %304 - OpBranch %322 - %322 = OpLabel - %323 = OpPhi %bool %320 %319 %300 %299 - OpBranch %325 - %325 = OpLabel - %326 = OpPhi %bool %323 %322 %false %272 - %327 = OpPhi %bool %false %322 %true %272 - OpSelectionMerge %387 None - OpBranchConditional %327 %330 %387 - %330 = OpLabel - %331 = OpSGreaterThanEqual %bool %264 %uint_1 - OpSelectionMerge %354 None - OpBranchConditional %331 %334 %354 - %334 = OpLabel - %335 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %336 = OpLoad %uint %335 - %337 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %338 = OpLoad %uint %337 - %339 = OpIAdd %uint %338 %336 - %340 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %339 - %341 = OpLoad %uint %340 - %342 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %341 - OpStore %342 %269 - %343 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %344 = OpLoad %uint %343 - %345 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %346 = OpLoad %uint %345 - %347 = OpIAdd %uint %346 %344 - %348 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %347 - %349 = OpLoad %uint %348 - %350 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %349 - %351 = OpLoad %uint %350 - %352 = OpULessThanEqual %bool %351 %uint_100 - OpBranch %354 - %354 = OpLabel - %355 = OpPhi %bool %352 %334 %326 %330 - %356 = OpPhi %bool %false %334 %true %330 - OpSelectionMerge %384 None - OpBranchConditional %356 %359 %384 - %359 = OpLabel - %360 = OpIEqual %bool %264 %uint_0 - OpSelectionMerge %382 None - OpBranchConditional %360 %363 %382 - %363 = OpLabel - %364 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %365 = OpLoad %uint %364 - %366 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %367 = OpLoad %uint %366 - %368 = OpIAdd %uint %367 %365 - %369 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %368 - %370 = OpLoad %uint %369 - %371 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %370 - OpStore %371 %269 - %372 = OpIAdd %uint %269 %uint_1 - %373 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %374 = OpLoad %uint %373 - %375 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %376 = OpLoad %uint %375 - %377 = OpIAdd %uint %376 %374 - %378 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %377 - %379 = OpLoad %uint %378 - %380 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %379 - OpStore %380 %372 - OpBranch %382 - %382 = OpLabel - OpBranch %384 - %384 = OpLabel - %385 = OpPhi %bool %true %382 %355 %354 - OpBranch %387 - %387 = OpLabel - %388 = OpPhi %bool %385 %384 %326 %325 - OpBranchConditional %388 %390 %394 - %390 = OpLabel - %391 = OpIAdd %uint %269 %uint_1 - %392 = OpUGreaterThanEqual %bool %391 %261 - OpBranch %394 - %394 = OpLabel - %395 = OpPhi %uint %391 %390 %456 %387 - %396 = OpPhi %bool %392 %390 %true %387 - OpBranchConditional %396 %398 %268 - %398 = OpLabel - OpBranch %400 - %400 = OpLabel - OpBranch %402 - %402 = OpLabel - %403 = OpLoad %uint %32 - %404 = OpINotEqual %bool %403 %uint_0 - OpSelectionMerge %433 None - OpBranchConditional %404 %407 %433 - %407 = OpLabel - %408 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %409 = OpCompositeExtract %uint %408 0 - %410 = OpLoad %uint %43 - %411 = OpIMul %uint %409 %410 - %413 = OpAtomicIAdd %uint %31 %uint_1 %uint_64 %uint_1 - %414 = OpULessThan %bool %413 %411 - OpSelectionMerge %431 None - OpBranchConditional %414 %417 %431 - %417 = OpLabel - %418 = OpPhi %uint %420 %417 %uint_0 %407 - %419 = OpAtomicLoad %uint %31 %uint_1 %uint_64 - %420 = OpIAdd %uint %418 %uint_1 - %422 = OpULessThan %bool %418 %uint_1023 - %423 = OpULessThan %bool %419 %411 - %425 = OpSelect %bool %422 %423 %false - %426 = OpLogicalNot %bool %425 - OpLoopMerge %429 %417 None - OpBranchConditional %426 %429 %417 - %429 = OpLabel - OpBranch %431 - %431 = OpLabel - OpBranch %433 - %433 = OpLabel - %434 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %233 - OpAtomicStore %434 %uint_1 %uint_68 %uint_1 - %436 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %235 - %438 = OpAtomicLoad %uint %436 %uint_1 %uint_66 - %439 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %246 - OpAtomicStore %439 %uint_1 %uint_68 %438 - %440 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %251 - %441 = OpAtomicLoad %uint %440 %uint_1 %uint_66 - %442 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %247 - %443 = OpAtomicLoad %uint %442 %uint_1 %uint_64 - %444 = OpIMul %uint %220 %uint_3 - %445 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %444 - OpAtomicStore %445 %uint_1 %uint_68 %438 - %446 = OpIMul %uint %228 %uint_3 - %447 = OpIAdd %uint %446 %uint_2 - %448 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %447 - OpAtomicStore %448 %uint_1 %uint_68 %443 - %449 = OpIAdd %uint %446 %uint_1 - %450 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %449 - OpAtomicStore %450 %uint_1 %uint_68 %441 - OpBranch %452 - %452 = OpLabel - OpBranch %454 - %454 = OpLabel - OpReturn - OpFunctionEnd - %482 = OpExtInst %void %457 PushConstantRegionGroupOffset %uint_0 %uint_12 - %459 = OpExtInst %void %457 Kernel %27 %458 %uint_7 - %461 = OpExtInst %void %457 ArgumentInfo %460 - %462 = OpExtInst %void %457 ArgumentStorageBuffer %459 %uint_0 %uint_0 %uint_0 %461 - %464 = OpExtInst %void %457 ArgumentInfo %463 - %465 = OpExtInst %void %457 ArgumentStorageBuffer %459 %uint_1 %uint_0 %uint_1 %464 - %467 = OpExtInst %void %457 ArgumentInfo %466 - %468 = OpExtInst %void %457 ArgumentStorageBuffer %459 %uint_2 %uint_0 %uint_2 %467 - %470 = OpExtInst %void %457 ArgumentInfo %469 - %471 = OpExtInst %void %457 ArgumentStorageBuffer %459 %uint_3 %uint_0 %uint_3 %470 - %473 = OpExtInst %void %457 ArgumentInfo %472 - %474 = OpExtInst %void %457 ArgumentStorageBuffer %459 %uint_4 %uint_0 %uint_4 %473 - %476 = OpExtInst %void %457 ArgumentInfo %475 - %477 = OpExtInst %void %457 ArgumentStorageBuffer %459 %uint_5 %uint_0 %uint_5 %476 - %479 = OpExtInst %void %457 ArgumentInfo %478 - %480 = OpExtInst %void %457 ArgumentStorageBuffer %459 %uint_6 %uint_0 %uint_6 %479 - %483 = OpExtInst %void %457 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/wrc-results.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/wrc-results.spv.dis deleted file mode 100644 index 818dde83e7..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/wrc-results.spv.dis +++ /dev/null @@ -1,224 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 184 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %166 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %27 "litmus_test" %gl_GlobalInvocationID - OpSource OpenCL_C 200 - %167 = OpString "litmus_test" - %169 = OpString "test_locations" - %172 = OpString "read_results" - %175 = OpString "test_results" - %178 = OpString "stress_params" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_15 0 Offset 0 - OpDecorate %_struct_15 Block - OpMemberDecorate %_struct_19 0 Offset 0 - OpMemberDecorate %_struct_19 1 Offset 4 - OpMemberDecorate %_struct_19 2 Offset 8 - OpMemberDecorate %_struct_19 3 Offset 12 - OpMemberDecorate %_struct_19 4 Offset 16 - OpMemberDecorate %_struct_19 5 Offset 20 - OpMemberDecorate %_struct_19 6 Offset 24 - OpDecorate %_runtimearr__struct_19 ArrayStride 28 - OpMemberDecorate %_struct_21 0 Offset 0 - OpDecorate %_struct_21 Block - OpDecorate %17 DescriptorSet 0 - OpDecorate %17 Binding 0 - OpDecorate %18 DescriptorSet 0 - OpDecorate %18 Binding 1 - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 2 - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 3 - OpDecorate %8 SpecId 0 - OpDecorate %9 SpecId 1 - OpDecorate %10 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 -%_ptr_Input_v3uint = OpTypePointer Input %v3uint - %8 = OpSpecConstant %uint 1 - %9 = OpSpecConstant %uint 1 - %10 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %8 %9 %10 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_15 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_15 = OpTypePointer StorageBuffer %_struct_15 - %_struct_19 = OpTypeStruct %uint %uint %uint %uint %uint %uint %uint -%_runtimearr__struct_19 = OpTypeRuntimeArray %_struct_19 - %_struct_21 = OpTypeStruct %_runtimearr__struct_19 -%_ptr_StorageBuffer__struct_21 = OpTypePointer StorageBuffer %_struct_21 - %void = OpTypeVoid - %26 = OpTypeFunction %void -%_ptr_Input_uint = OpTypePointer Input %uint - %uint_0 = OpConstant %uint 0 -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_10 = OpConstant %uint 10 - %uint_1 = OpConstant %uint 1 - %uint_66 = OpConstant %uint 66 - %uint_3 = OpConstant %uint 3 - %uint_2 = OpConstant %uint 2 - %bool = OpTypeBool - %false = OpConstantFalse %bool - %uint_6 = OpConstant %uint 6 - %uint_72 = OpConstant %uint 72 - %uint_5 = OpConstant %uint 5 - %uint_4 = OpConstant %uint 4 - %true = OpConstantTrue %bool - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant -%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input - %13 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize - %17 = OpVariable %_ptr_StorageBuffer__struct_15 StorageBuffer - %18 = OpVariable %_ptr_StorageBuffer__struct_15 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_21 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_15 StorageBuffer - %27 = OpFunction %void None %26 - %28 = OpLabel - %31 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0 - %32 = OpLoad %uint %31 - %34 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %35 = OpLoad %uint %34 - %36 = OpIAdd %uint %35 %32 - %39 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %40 = OpLoad %uint %39 - %42 = OpShiftLeftLogical %uint %40 %uint_1 - %43 = OpIMul %uint %42 %36 - %44 = OpAccessChain %_ptr_StorageBuffer_uint %17 %uint_0 %43 - %46 = OpAtomicLoad %uint %44 %uint_1 %uint_66 - %48 = OpIMul %uint %36 %uint_3 - %49 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %48 - %50 = OpAtomicLoad %uint %49 %uint_1 %uint_66 - %51 = OpIAdd %uint %48 %uint_1 - %52 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %51 - %53 = OpAtomicLoad %uint %52 %uint_1 %uint_66 - %55 = OpIAdd %uint %48 %uint_2 - %56 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %55 - %57 = OpAtomicLoad %uint %56 %uint_1 %uint_66 - %59 = OpIEqual %bool %50 %uint_1 - %60 = OpIEqual %bool %53 %uint_1 - %62 = OpSelect %bool %59 %60 %false - %63 = OpIEqual %bool %57 %uint_1 - %64 = OpSelect %bool %62 %63 %false - %65 = OpLogicalNot %bool %64 - OpSelectionMerge %156 None - OpBranchConditional %65 %68 %156 - %68 = OpLabel - %69 = OpIEqual %bool %50 %uint_0 - %70 = OpIEqual %bool %53 %uint_0 - %71 = OpSelect %bool %69 %70 %false - %72 = OpIEqual %bool %57 %uint_0 - %73 = OpSelect %bool %71 %72 %false - %74 = OpLogicalNot %bool %73 - OpSelectionMerge %146 None - OpBranchConditional %74 %77 %146 - %77 = OpLabel - %78 = OpSelect %bool %71 %63 %false - %79 = OpLogicalNot %bool %78 - OpSelectionMerge %136 None - OpBranchConditional %79 %82 %136 - %82 = OpLabel - %83 = OpSelect %bool %59 %70 %false - %84 = OpSelect %bool %83 %72 %false - %85 = OpLogicalNot %bool %84 - OpSelectionMerge %126 None - OpBranchConditional %85 %88 %126 - %88 = OpLabel - %89 = OpSelect %bool %83 %63 %false - %90 = OpLogicalNot %bool %89 - OpSelectionMerge %115 None - OpBranchConditional %90 %93 %115 - %93 = OpLabel - %94 = OpSelect %bool %62 %72 %false - %95 = OpLogicalNot %bool %94 - OpSelectionMerge %104 None - OpBranchConditional %95 %98 %104 - %98 = OpLabel - %100 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_6 - %102 = OpAtomicIAdd %uint %100 %uint_1 %uint_72 %uint_1 - OpBranch %104 - %104 = OpLabel - %105 = OpPhi %bool %false %98 %true %93 - OpSelectionMerge %113 None - OpBranchConditional %105 %108 %113 - %108 = OpLabel - %110 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_5 - %111 = OpAtomicIAdd %uint %110 %uint_1 %uint_72 %uint_1 - OpBranch %113 - %113 = OpLabel - OpBranch %115 - %115 = OpLabel - %116 = OpPhi %bool %false %113 %true %88 - OpSelectionMerge %124 None - OpBranchConditional %116 %119 %124 - %119 = OpLabel - %121 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_4 - %122 = OpAtomicIAdd %uint %121 %uint_1 %uint_72 %uint_1 - OpBranch %124 - %124 = OpLabel - OpBranch %126 - %126 = OpLabel - %127 = OpPhi %bool %false %124 %true %82 - OpSelectionMerge %134 None - OpBranchConditional %127 %130 %134 - %130 = OpLabel - %131 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_3 - %132 = OpAtomicIAdd %uint %131 %uint_1 %uint_72 %uint_1 - OpBranch %134 - %134 = OpLabel - OpBranch %136 - %136 = OpLabel - %137 = OpPhi %bool %false %134 %true %77 - OpSelectionMerge %144 None - OpBranchConditional %137 %140 %144 - %140 = OpLabel - %141 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_2 - %142 = OpAtomicIAdd %uint %141 %uint_1 %uint_72 %uint_1 - OpBranch %144 - %144 = OpLabel - OpBranch %146 - %146 = OpLabel - %147 = OpPhi %bool %false %144 %true %68 - OpSelectionMerge %154 None - OpBranchConditional %147 %150 %154 - %150 = OpLabel - %151 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_1 - %152 = OpAtomicIAdd %uint %151 %uint_1 %uint_72 %uint_1 - OpBranch %154 - %154 = OpLabel - OpBranch %156 - %156 = OpLabel - %157 = OpPhi %bool %false %154 %true %28 - OpSelectionMerge %164 None - OpBranchConditional %157 %160 %164 - %160 = OpLabel - %161 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %uint_0 %uint_0 - %162 = OpAtomicIAdd %uint %161 %uint_1 %uint_72 %uint_1 - OpBranch %164 - %164 = OpLabel - OpReturn - OpFunctionEnd - %182 = OpExtInst %void %166 PushConstantRegionOffset %uint_0 %uint_12 - %168 = OpExtInst %void %166 Kernel %27 %167 %uint_4 - %170 = OpExtInst %void %166 ArgumentInfo %169 - %171 = OpExtInst %void %166 ArgumentStorageBuffer %168 %uint_0 %uint_0 %uint_0 %170 - %173 = OpExtInst %void %166 ArgumentInfo %172 - %174 = OpExtInst %void %166 ArgumentStorageBuffer %168 %uint_1 %uint_0 %uint_1 %173 - %176 = OpExtInst %void %166 ArgumentInfo %175 - %177 = OpExtInst %void %166 ArgumentStorageBuffer %168 %uint_2 %uint_0 %uint_2 %176 - %179 = OpExtInst %void %166 ArgumentInfo %178 - %180 = OpExtInst %void %166 ArgumentStorageBuffer %168 %uint_3 %uint_0 %uint_3 %179 - %183 = OpExtInst %void %166 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2 diff --git a/dartagnan/src/test/resources/parsers/program/spirv/valid/wrc.spv.dis b/dartagnan/src/test/resources/parsers/program/spirv/valid/wrc.spv.dis deleted file mode 100644 index 702c9acf64..0000000000 --- a/dartagnan/src/test/resources/parsers/program/spirv/valid/wrc.spv.dis +++ /dev/null @@ -1,540 +0,0 @@ -; SPIR-V -; Version: 1.0 -; Generator: Google Clspv; 0 -; Bound: 490 -; Schema: 0 - OpCapability Shader - OpExtension "SPV_KHR_storage_buffer_storage_class" - OpExtension "SPV_KHR_non_semantic_info" - %462 = OpExtInstImport "NonSemantic.ClspvReflection.5" - OpMemoryModel Logical GLSL450 - OpEntryPoint GLCompute %27 "litmus_test" %gl_LocalInvocationID %gl_WorkGroupID - OpSource OpenCL_C 200 - %463 = OpString "litmus_test" - %464 = OpString " __kernel" - %466 = OpString "test_locations" - %469 = OpString "read_results" - %472 = OpString "shuffled_workgroups" - %475 = OpString "barrier" - %478 = OpString "scratchpad" - %481 = OpString "scratch_locations" - %484 = OpString "stress_params" - OpMemberDecorate %_struct_3 0 Offset 0 - OpDecorate %_struct_3 Block - OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize - OpDecorate %gl_LocalInvocationID BuiltIn LocalInvocationId - OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId - OpDecorate %_runtimearr_uint ArrayStride 4 - OpMemberDecorate %_struct_16 0 Offset 0 - OpDecorate %_struct_16 Block - OpDecorate %18 DescriptorSet 0 - OpDecorate %18 Binding 0 - OpDecorate %19 DescriptorSet 0 - OpDecorate %19 Binding 1 - OpDecorate %20 DescriptorSet 0 - OpDecorate %20 Binding 2 - OpDecorate %21 DescriptorSet 0 - OpDecorate %21 Binding 3 - OpDecorate %22 DescriptorSet 0 - OpDecorate %22 Binding 4 - OpDecorate %23 DescriptorSet 0 - OpDecorate %23 Binding 5 - OpDecorate %24 DescriptorSet 0 - OpDecorate %24 Binding 6 - OpDecorate %6 SpecId 0 - OpDecorate %7 SpecId 1 - OpDecorate %8 SpecId 2 - %uint = OpTypeInt 32 0 - %v3uint = OpTypeVector %uint 3 - %_struct_3 = OpTypeStruct %v3uint -%_ptr_PushConstant__struct_3 = OpTypePointer PushConstant %_struct_3 - %6 = OpSpecConstant %uint 1 - %7 = OpSpecConstant %uint 1 - %8 = OpSpecConstant %uint 1 -%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %6 %7 %8 -%_ptr_Private_v3uint = OpTypePointer Private %v3uint -%_ptr_Input_v3uint = OpTypePointer Input %v3uint -%_runtimearr_uint = OpTypeRuntimeArray %uint - %_struct_16 = OpTypeStruct %_runtimearr_uint -%_ptr_StorageBuffer__struct_16 = OpTypePointer StorageBuffer %_struct_16 - %void = OpTypeVoid - %26 = OpTypeFunction %void -%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint - %uint_0 = OpConstant %uint 0 -%_ptr_Input_uint = OpTypePointer Input %uint -%_ptr_PushConstant_uint = OpTypePointer PushConstant %uint - %uint_9 = OpConstant %uint 9 - %bool = OpTypeBool - %uint_1 = OpConstant %uint 1 - %uint_2 = OpConstant %uint 2 - %uint_3 = OpConstant %uint 3 - %uint_100 = OpConstant %uint 100 - %uint_7 = OpConstant %uint 7 -%uint_4294967295 = OpConstant %uint 4294967295 - %uint_10 = OpConstant %uint 10 - %uint_8 = OpConstant %uint 8 - %uint_11 = OpConstant %uint 11 - %uint_4 = OpConstant %uint 4 - %uint_5 = OpConstant %uint 5 - %uint_6 = OpConstant %uint 6 - %uint_64 = OpConstant %uint 64 - %uint_1023 = OpConstant %uint 1023 - %false = OpConstantFalse %bool - %uint_68 = OpConstant %uint 68 - %true = OpConstantTrue %bool - %461 = OpUndef %uint - %uint_12 = OpConstant %uint 12 - %5 = OpVariable %_ptr_PushConstant__struct_3 PushConstant - %11 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize -%gl_LocalInvocationID = OpVariable %_ptr_Input_v3uint Input -%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input - %18 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %19 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %20 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %21 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %22 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %23 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %24 = OpVariable %_ptr_StorageBuffer__struct_16 StorageBuffer - %27 = OpFunction %void None %26 - %28 = OpLabel - %31 = OpAccessChain %_ptr_StorageBuffer_uint %21 %uint_0 %uint_0 - %32 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_0 - %34 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %35 = OpLoad %uint %34 - %37 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %38 = OpLoad %uint %37 - %39 = OpIAdd %uint %35 %38 - %40 = OpAccessChain %_ptr_StorageBuffer_uint %20 %uint_0 %39 - %41 = OpLoad %uint %40 - %43 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_9 - %44 = OpLoad %uint %43 - %46 = OpUGreaterThanEqual %bool %41 %44 - OpSelectionMerge %203 None - OpBranchConditional %46 %49 %203 - %49 = OpLabel - %51 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_1 - %52 = OpLoad %uint %51 - %53 = OpINotEqual %bool %52 %uint_0 - OpSelectionMerge %201 None - OpBranchConditional %53 %56 %201 - %56 = OpLabel - %58 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_2 - %59 = OpLoad %uint %58 - %61 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_3 - %62 = OpLoad %uint %61 - %63 = OpINotEqual %bool %59 %uint_0 - OpSelectionMerge %199 None - OpBranchConditional %63 %66 %199 - %66 = OpLabel - %67 = OpPhi %uint %194 %193 %uint_0 %56 - OpLoopMerge %197 %193 None - OpBranch %70 - %70 = OpLabel - %71 = OpSGreaterThanEqual %bool %62 %uint_2 - OpSelectionMerge %124 None - OpBranchConditional %71 %74 %124 - %74 = OpLabel - %75 = OpSGreaterThanEqual %bool %62 %uint_3 - OpSelectionMerge %98 None - OpBranchConditional %75 %78 %98 - %78 = OpLabel - %79 = OpIEqual %bool %62 %uint_3 - OpSelectionMerge %95 None - OpBranchConditional %79 %82 %95 - %82 = OpLabel - %83 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %84 = OpLoad %uint %83 - %85 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %86 = OpLoad %uint %85 - %87 = OpIAdd %uint %84 %86 - %88 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %87 - %89 = OpLoad %uint %88 - %90 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %89 - %91 = OpLoad %uint %90 - %93 = OpULessThanEqual %bool %91 %uint_100 - OpBranch %95 - %95 = OpLabel - %96 = OpPhi %bool %93 %82 %true %78 - OpBranch %98 - %98 = OpLabel - %99 = OpPhi %bool %96 %95 %false %74 - %100 = OpPhi %bool %false %95 %true %74 - OpSelectionMerge %121 None - OpBranchConditional %100 %103 %121 - %103 = OpLabel - %104 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %105 = OpLoad %uint %104 - %106 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %107 = OpLoad %uint %106 - %108 = OpIAdd %uint %105 %107 - %109 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %108 - %110 = OpLoad %uint %109 - %111 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %110 - %112 = OpLoad %uint %111 - %113 = OpULessThanEqual %bool %112 %uint_100 - OpSelectionMerge %118 None - OpBranchConditional %113 %116 %118 - %116 = OpLabel - OpStore %111 %67 - OpBranch %118 - %118 = OpLabel - %119 = OpPhi %bool %true %116 %99 %103 - OpBranch %121 - %121 = OpLabel - %122 = OpPhi %bool %119 %118 %99 %98 - OpBranch %124 - %124 = OpLabel - %125 = OpPhi %bool %122 %121 %false %70 - %126 = OpPhi %bool %false %121 %true %70 - OpSelectionMerge %186 None - OpBranchConditional %126 %129 %186 - %129 = OpLabel - %130 = OpSGreaterThanEqual %bool %62 %uint_1 - OpSelectionMerge %153 None - OpBranchConditional %130 %133 %153 - %133 = OpLabel - %134 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %135 = OpLoad %uint %134 - %136 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %137 = OpLoad %uint %136 - %138 = OpIAdd %uint %135 %137 - %139 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %138 - %140 = OpLoad %uint %139 - %141 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %140 - OpStore %141 %67 - %142 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %143 = OpLoad %uint %142 - %144 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %145 = OpLoad %uint %144 - %146 = OpIAdd %uint %143 %145 - %147 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %146 - %148 = OpLoad %uint %147 - %149 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %148 - %150 = OpLoad %uint %149 - %151 = OpULessThanEqual %bool %150 %uint_100 - OpBranch %153 - %153 = OpLabel - %154 = OpPhi %bool %151 %133 %125 %129 - %155 = OpPhi %bool %false %133 %true %129 - OpSelectionMerge %183 None - OpBranchConditional %155 %158 %183 - %158 = OpLabel - %159 = OpIEqual %bool %62 %uint_0 - OpSelectionMerge %181 None - OpBranchConditional %159 %162 %181 - %162 = OpLabel - %163 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %164 = OpLoad %uint %163 - %165 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %166 = OpLoad %uint %165 - %167 = OpIAdd %uint %164 %166 - %168 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %167 - %169 = OpLoad %uint %168 - %170 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %169 - OpStore %170 %67 - %171 = OpIAdd %uint %67 %uint_1 - %172 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %173 = OpLoad %uint %172 - %174 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %175 = OpLoad %uint %174 - %176 = OpIAdd %uint %173 %175 - %177 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %176 - %178 = OpLoad %uint %177 - %179 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %178 - OpStore %179 %171 - OpBranch %181 - %181 = OpLabel - OpBranch %183 - %183 = OpLabel - %184 = OpPhi %bool %true %181 %154 %153 - OpBranch %186 - %186 = OpLabel - %187 = OpPhi %bool %184 %183 %125 %124 - OpBranchConditional %187 %189 %193 - %189 = OpLabel - %190 = OpIAdd %uint %67 %uint_1 - %191 = OpUGreaterThanEqual %bool %190 %59 - OpBranch %193 - %193 = OpLabel - %194 = OpPhi %uint %190 %189 %461 %186 - %195 = OpPhi %bool %191 %189 %true %186 - OpBranchConditional %195 %197 %66 - %197 = OpLabel - OpBranch %199 - %199 = OpLabel - OpBranch %201 - %201 = OpLabel - OpBranch %203 - %203 = OpLabel - %204 = OpPhi %bool %false %201 %true %28 - OpSelectionMerge %457 None - OpBranchConditional %204 %207 %457 - %207 = OpLabel - %208 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %209 = OpCompositeExtract %uint %208 0 - %210 = OpIMul %uint %209 %44 - %211 = OpIMul %uint %209 %41 - %212 = OpAccessChain %_ptr_Input_uint %gl_LocalInvocationID %uint_0 - %213 = OpLoad %uint %212 - %214 = OpIAdd %uint %211 %213 - %216 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_7 - %217 = OpLoad %uint %216 - %218 = OpIMul %uint %217 %213 - %219 = OpUMod %uint %218 %209 - %220 = OpIAdd %uint %219 %211 - %221 = OpIAdd %uint %41 %uint_1 - %223 = OpIAdd %uint %44 %uint_4294967295 - %224 = OpUMod %uint %213 %223 - %225 = OpIAdd %uint %221 %224 - %226 = OpUMod %uint %225 %44 - %227 = OpIMul %uint %226 %209 - %228 = OpIAdd %uint %227 %219 - %230 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_10 - %231 = OpLoad %uint %230 - %232 = OpShiftLeftLogical %uint %214 %uint_1 - %233 = OpIMul %uint %232 %231 - %234 = OpShiftLeftLogical %uint %220 %uint_1 - %235 = OpIMul %uint %234 %231 - %237 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_8 - %238 = OpLoad %uint %237 - %239 = OpIMul %uint %238 %220 - %240 = OpUMod %uint %239 %210 - %241 = OpShiftLeftLogical %uint %231 %uint_1 - %242 = OpIMul %uint %241 %240 - %244 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_11 - %245 = OpLoad %uint %244 - %246 = OpIMul %uint %241 %228 - %247 = OpIMul %uint %228 %238 - %248 = OpUMod %uint %247 %210 - %249 = OpIMul %uint %241 %248 - %251 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_4 - %252 = OpLoad %uint %251 - %253 = OpINotEqual %bool %252 %uint_0 - OpSelectionMerge %400 None - OpBranchConditional %253 %256 %400 - %256 = OpLabel - %258 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_5 - %259 = OpLoad %uint %258 - %261 = OpAccessChain %_ptr_StorageBuffer_uint %24 %uint_0 %uint_6 - %262 = OpLoad %uint %261 - %263 = OpINotEqual %bool %259 %uint_0 - OpSelectionMerge %398 None - OpBranchConditional %263 %266 %398 - %266 = OpLabel - %267 = OpPhi %uint %393 %392 %uint_0 %256 - OpLoopMerge %396 %392 None - OpBranch %270 - %270 = OpLabel - %271 = OpSGreaterThanEqual %bool %262 %uint_2 - OpSelectionMerge %323 None - OpBranchConditional %271 %274 %323 - %274 = OpLabel - %275 = OpSGreaterThanEqual %bool %262 %uint_3 - OpSelectionMerge %297 None - OpBranchConditional %275 %278 %297 - %278 = OpLabel - %279 = OpIEqual %bool %262 %uint_3 - OpSelectionMerge %294 None - OpBranchConditional %279 %282 %294 - %282 = OpLabel - %283 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %284 = OpLoad %uint %283 - %285 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %286 = OpLoad %uint %285 - %287 = OpIAdd %uint %284 %286 - %288 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %287 - %289 = OpLoad %uint %288 - %290 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %289 - %291 = OpLoad %uint %290 - %292 = OpULessThanEqual %bool %291 %uint_100 - OpBranch %294 - %294 = OpLabel - %295 = OpPhi %bool %292 %282 %true %278 - OpBranch %297 - %297 = OpLabel - %298 = OpPhi %bool %295 %294 %false %274 - %299 = OpPhi %bool %false %294 %true %274 - OpSelectionMerge %320 None - OpBranchConditional %299 %302 %320 - %302 = OpLabel - %303 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %304 = OpLoad %uint %303 - %305 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %306 = OpLoad %uint %305 - %307 = OpIAdd %uint %304 %306 - %308 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %307 - %309 = OpLoad %uint %308 - %310 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %309 - %311 = OpLoad %uint %310 - %312 = OpULessThanEqual %bool %311 %uint_100 - OpSelectionMerge %317 None - OpBranchConditional %312 %315 %317 - %315 = OpLabel - OpStore %310 %267 - OpBranch %317 - %317 = OpLabel - %318 = OpPhi %bool %true %315 %298 %302 - OpBranch %320 - %320 = OpLabel - %321 = OpPhi %bool %318 %317 %298 %297 - OpBranch %323 - %323 = OpLabel - %324 = OpPhi %bool %321 %320 %false %270 - %325 = OpPhi %bool %false %320 %true %270 - OpSelectionMerge %385 None - OpBranchConditional %325 %328 %385 - %328 = OpLabel - %329 = OpSGreaterThanEqual %bool %262 %uint_1 - OpSelectionMerge %352 None - OpBranchConditional %329 %332 %352 - %332 = OpLabel - %333 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %334 = OpLoad %uint %333 - %335 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %336 = OpLoad %uint %335 - %337 = OpIAdd %uint %334 %336 - %338 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %337 - %339 = OpLoad %uint %338 - %340 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %339 - OpStore %340 %267 - %341 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %342 = OpLoad %uint %341 - %343 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %344 = OpLoad %uint %343 - %345 = OpIAdd %uint %342 %344 - %346 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %345 - %347 = OpLoad %uint %346 - %348 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %347 - %349 = OpLoad %uint %348 - %350 = OpULessThanEqual %bool %349 %uint_100 - OpBranch %352 - %352 = OpLabel - %353 = OpPhi %bool %350 %332 %324 %328 - %354 = OpPhi %bool %false %332 %true %328 - OpSelectionMerge %382 None - OpBranchConditional %354 %357 %382 - %357 = OpLabel - %358 = OpIEqual %bool %262 %uint_0 - OpSelectionMerge %380 None - OpBranchConditional %358 %361 %380 - %361 = OpLabel - %362 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %363 = OpLoad %uint %362 - %364 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %365 = OpLoad %uint %364 - %366 = OpIAdd %uint %363 %365 - %367 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %366 - %368 = OpLoad %uint %367 - %369 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %368 - OpStore %369 %267 - %370 = OpIAdd %uint %267 %uint_1 - %371 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0 - %372 = OpLoad %uint %371 - %373 = OpAccessChain %_ptr_PushConstant_uint %5 %uint_0 %uint_0 - %374 = OpLoad %uint %373 - %375 = OpIAdd %uint %372 %374 - %376 = OpAccessChain %_ptr_StorageBuffer_uint %23 %uint_0 %375 - %377 = OpLoad %uint %376 - %378 = OpAccessChain %_ptr_StorageBuffer_uint %22 %uint_0 %377 - OpStore %378 %370 - OpBranch %380 - %380 = OpLabel - OpBranch %382 - %382 = OpLabel - %383 = OpPhi %bool %true %380 %353 %352 - OpBranch %385 - %385 = OpLabel - %386 = OpPhi %bool %383 %382 %324 %323 - OpBranchConditional %386 %388 %392 - %388 = OpLabel - %389 = OpIAdd %uint %267 %uint_1 - %390 = OpUGreaterThanEqual %bool %389 %259 - OpBranch %392 - %392 = OpLabel - %393 = OpPhi %uint %389 %388 %461 %385 - %394 = OpPhi %bool %390 %388 %true %385 - OpBranchConditional %394 %396 %266 - %396 = OpLabel - OpBranch %398 - %398 = OpLabel - OpBranch %400 - %400 = OpLabel - %401 = OpLoad %uint %32 - %402 = OpINotEqual %bool %401 %uint_0 - OpSelectionMerge %431 None - OpBranchConditional %402 %405 %431 - %405 = OpLabel - %406 = OpBitwiseAnd %v3uint %gl_WorkGroupSize %gl_WorkGroupSize - %407 = OpCompositeExtract %uint %406 0 - %408 = OpLoad %uint %43 - %409 = OpIMul %uint %407 %408 - %411 = OpAtomicIAdd %uint %31 %uint_1 %uint_64 %uint_1 - %412 = OpULessThan %bool %411 %409 - OpSelectionMerge %429 None - OpBranchConditional %412 %415 %429 - %415 = OpLabel - %416 = OpPhi %uint %418 %415 %uint_0 %405 - %417 = OpAtomicLoad %uint %31 %uint_1 %uint_64 - %418 = OpIAdd %uint %416 %uint_1 - %420 = OpULessThan %bool %416 %uint_1023 - %421 = OpULessThan %bool %417 %409 - %423 = OpSelect %bool %420 %421 %false - %424 = OpLogicalNot %bool %423 - OpLoopMerge %427 %415 None - OpBranchConditional %424 %427 %415 - %427 = OpLabel - OpBranch %429 - %429 = OpLabel - OpBranch %431 - %431 = OpLabel - %432 = OpINotEqual %bool %213 %219 - OpSelectionMerge %455 None - OpBranchConditional %432 %435 %455 - %435 = OpLabel - %436 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %233 - OpAtomicStore %436 %uint_1 %uint_64 %uint_1 - %437 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %235 - %438 = OpAtomicLoad %uint %437 %uint_1 %uint_64 - %439 = OpIAdd %uint %242 %245 - %440 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %439 - OpAtomicStore %440 %uint_1 %uint_64 %438 - %441 = OpIAdd %uint %249 %245 - %442 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %441 - %443 = OpAtomicLoad %uint %442 %uint_1 %uint_64 - %444 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_0 %246 - %445 = OpAtomicLoad %uint %444 %uint_1 %uint_64 - %446 = OpIMul %uint %220 %uint_3 - %447 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %446 - OpAtomicStore %447 %uint_1 %uint_68 %438 - %449 = OpIMul %uint %228 %uint_3 - %450 = OpIAdd %uint %449 %uint_2 - %451 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %450 - OpAtomicStore %451 %uint_1 %uint_68 %445 - %452 = OpIAdd %uint %449 %uint_1 - %453 = OpAccessChain %_ptr_StorageBuffer_uint %19 %uint_0 %452 - OpAtomicStore %453 %uint_1 %uint_68 %443 - OpBranch %455 - %455 = OpLabel - OpBranch %457 - %457 = OpLabel - OpBranch %459 - %459 = OpLabel - OpReturn - OpFunctionEnd - %488 = OpExtInst %void %462 PushConstantRegionGroupOffset %uint_0 %uint_12 - %465 = OpExtInst %void %462 Kernel %27 %463 %uint_7 %uint_0 %464 - %467 = OpExtInst %void %462 ArgumentInfo %466 - %468 = OpExtInst %void %462 ArgumentStorageBuffer %465 %uint_0 %uint_0 %uint_0 %467 - %470 = OpExtInst %void %462 ArgumentInfo %469 - %471 = OpExtInst %void %462 ArgumentStorageBuffer %465 %uint_1 %uint_0 %uint_1 %470 - %473 = OpExtInst %void %462 ArgumentInfo %472 - %474 = OpExtInst %void %462 ArgumentStorageBuffer %465 %uint_2 %uint_0 %uint_2 %473 - %476 = OpExtInst %void %462 ArgumentInfo %475 - %477 = OpExtInst %void %462 ArgumentStorageBuffer %465 %uint_3 %uint_0 %uint_3 %476 - %479 = OpExtInst %void %462 ArgumentInfo %478 - %480 = OpExtInst %void %462 ArgumentStorageBuffer %465 %uint_4 %uint_0 %uint_4 %479 - %482 = OpExtInst %void %462 ArgumentInfo %481 - %483 = OpExtInst %void %462 ArgumentStorageBuffer %465 %uint_5 %uint_0 %uint_5 %482 - %485 = OpExtInst %void %462 ArgumentInfo %484 - %486 = OpExtInst %void %462 ArgumentStorageBuffer %465 %uint_6 %uint_0 %uint_6 %485 - %489 = OpExtInst %void %462 SpecConstantWorkgroupSize %uint_0 %uint_1 %uint_2