glslang/Test/baseResults/spv.shortCircuit.frag.out
Dejan Mircevski ed55bcd9f8 Don't remove SPIR-V blocks before codegen.
A removed block releases its instructions, so Module::idToInstruction
suddenly contains dangling references.  The original motivation for
block removal was to skip some unreachable blocks, but that's already
achieved by InReadableOrder.cpp.

Also updated stale comments.
2016-01-19 21:18:14 -05:00

234 lines
10 KiB
Plaintext

spv.shortCircuit.frag
Warning, version 400 is not yet complete; most version-specific features are present, but some are missing.
Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 144
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 12 24
ExecutionMode 4 OriginLowerLeft
Source GLSL 400
Name 4 "main"
Name 8 "foo("
Name 12 "of1"
Name 24 "of4"
Name 27 "ub"
Name 31 "ui"
Name 41 "uba"
Name 110 "uf"
Name 137 "uiv4"
Name 139 "uv4"
Name 142 "ub41"
Name 143 "ub42"
2: TypeVoid
3: TypeFunction 2
6: TypeBool
7: TypeFunction 6(bool)
10: TypeFloat 32
11: TypePointer Output 10(float)
12(of1): 11(ptr) Variable Output
14: 10(float) Constant 1065353216
17: 10(float) Constant 1092616192
21: 10(float) Constant 0
22: TypeVector 10(float) 4
23: TypePointer Output 22(fvec4)
24(of4): 23(ptr) Variable Output
25: 22(fvec4) ConstantComposite 21 21 21 21
26: TypePointer UniformConstant 6(bool)
27(ub): 26(ptr) Variable UniformConstant
29: TypeInt 32 1
30: TypePointer UniformConstant 29(int)
31(ui): 30(ptr) Variable UniformConstant
33: 29(int) Constant 2
41(uba): 26(ptr) Variable UniformConstant
109: TypePointer UniformConstant 10(float)
110(uf): 109(ptr) Variable UniformConstant
113: 10(float) Constant 1082130432
135: TypeVector 29(int) 4
136: TypePointer UniformConstant 135(ivec4)
137(uiv4): 136(ptr) Variable UniformConstant
138: TypePointer UniformConstant 22(fvec4)
139(uv4): 138(ptr) Variable UniformConstant
140: TypeVector 6(bool) 4
141: TypePointer UniformConstant 140(bvec4)
142(ub41): 141(ptr) Variable UniformConstant
143(ub42): 141(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
Store 12(of1) 21
Store 24(of4) 25
28: 6(bool) Load 27(ub)
32: 29(int) Load 31(ui)
34: 6(bool) SGreaterThan 32 33
35: 6(bool) LogicalOr 28 34
SelectionMerge 37 None
BranchConditional 35 36 37
36: Label
38: 10(float) Load 12(of1)
39: 10(float) FAdd 38 14
Store 12(of1) 39
Branch 37
37: Label
40: 6(bool) Load 27(ub)
42: 6(bool) Load 41(uba)
43: 6(bool) LogicalNot 42
44: 6(bool) LogicalAnd 40 43
SelectionMerge 46 None
BranchConditional 44 45 46
45: Label
47: 10(float) Load 12(of1)
48: 10(float) FAdd 47 14
Store 12(of1) 48
Branch 46
46: Label
49: 6(bool) Load 27(ub)
50: 6(bool) LogicalNot 49
SelectionMerge 52 None
BranchConditional 50 51 52
51: Label
53: 6(bool) FunctionCall 8(foo()
Branch 52
52: Label
54: 6(bool) Phi 49 46 53 51
SelectionMerge 56 None
BranchConditional 54 55 56
55: Label
57: 10(float) Load 12(of1)
58: 10(float) FAdd 57 14
Store 12(of1) 58
Branch 56
56: Label
59: 6(bool) Load 27(ub)
SelectionMerge 61 None
BranchConditional 59 60 61
60: Label
62: 6(bool) FunctionCall 8(foo()
Branch 61
61: Label
63: 6(bool) Phi 59 56 62 60
SelectionMerge 65 None
BranchConditional 63 64 65
64: Label
66: 10(float) Load 12(of1)
67: 10(float) FAdd 66 14
Store 12(of1) 67
Branch 65
65: Label
68: 6(bool) FunctionCall 8(foo()
69: 6(bool) Load 27(ub)
70: 6(bool) LogicalOr 68 69
SelectionMerge 72 None
BranchConditional 70 71 72
71: Label
73: 10(float) Load 12(of1)
74: 10(float) FAdd 73 14
Store 12(of1) 74
Branch 72
72: Label
75: 6(bool) FunctionCall 8(foo()
76: 6(bool) Load 27(ub)
77: 6(bool) LogicalAnd 75 76
SelectionMerge 79 None
BranchConditional 77 78 79
78: Label
80: 10(float) Load 12(of1)
81: 10(float) FAdd 80 14
Store 12(of1) 81
Branch 79
79: Label
82: 6(bool) Load 27(ub)
83: 6(bool) LogicalNot 82
SelectionMerge 85 None
BranchConditional 83 84 85
84: Label
86: 10(float) Load 12(of1)
87: 10(float) FAdd 86 14
Store 12(of1) 87
88: 6(bool) FOrdGreaterThan 87 14
Branch 85
85: Label
89: 6(bool) Phi 82 79 88 84
SelectionMerge 91 None
BranchConditional 89 90 91
90: Label
92: 22(fvec4) Load 24(of4)
93: 22(fvec4) CompositeConstruct 14 14 14 14
94: 22(fvec4) FAdd 92 93
Store 24(of4) 94
Branch 91
91: Label
95: 10(float) Load 12(of1)
96: 10(float) FAdd 95 14
Store 12(of1) 96
97: 6(bool) FOrdGreaterThan 96 14
98: 6(bool) Load 27(ub)
99: 6(bool) LogicalOr 97 98
SelectionMerge 101 None
BranchConditional 99 100 101
100: Label
102: 22(fvec4) Load 24(of4)
103: 22(fvec4) CompositeConstruct 14 14 14 14
104: 22(fvec4) FAdd 102 103
Store 24(of4) 104
Branch 101
101: Label
105: 6(bool) Load 27(ub)
106: 6(bool) LogicalNot 105
SelectionMerge 108 None
BranchConditional 106 107 108
107: Label
111: 10(float) Load 110(uf)
112: 10(float) ExtInst 1(GLSL.std.450) 13(Sin) 111
114: 10(float) FMul 112 113
115: 10(float) Load 12(of1)
116: 6(bool) FOrdGreaterThan 114 115
Branch 108
108: Label
117: 6(bool) Phi 105 101 116 107
SelectionMerge 119 None
BranchConditional 117 118 119
118: Label
120: 10(float) Load 12(of1)
121: 10(float) FAdd 120 14
Store 12(of1) 121
Branch 119
119: Label
122: 6(bool) Load 27(ub)
SelectionMerge 124 None
BranchConditional 122 123 124
123: Label
125: 10(float) Load 110(uf)
126: 10(float) ExtInst 1(GLSL.std.450) 13(Sin) 125
127: 10(float) FMul 126 113
128: 10(float) Load 12(of1)
129: 6(bool) FOrdGreaterThan 127 128
Branch 124
124: Label
130: 6(bool) Phi 122 119 129 123
SelectionMerge 132 None
BranchConditional 130 131 132
131: Label
133: 10(float) Load 12(of1)
134: 10(float) FAdd 133 14
Store 12(of1) 134
Branch 132
132: Label
Return
FunctionEnd
8(foo(): 6(bool) Function None 7
9: Label
13: 10(float) Load 12(of1)
15: 10(float) FAdd 13 14
Store 12(of1) 15
16: 10(float) Load 12(of1)
18: 6(bool) FOrdGreaterThan 16 17
ReturnValue 18
FunctionEnd