HLSL: Fix #1249: Always execute both sides of ternary "?:".

This is semantically required by HLSL, and frequently results in using
OpSelect instead of control flow.
This commit is contained in:
John Kessenich 2018-02-20 21:29:05 -07:00
parent a5cae08259
commit 4bee531fc1
17 changed files with 776 additions and 850 deletions

View file

@ -14,7 +14,7 @@ gl_FragCoord origin is upper left
0:16 '@sampleCount' ( temp uint)
0:16 imageQuerySamples ( temp uint)
0:16 'g_tTex2dmsf4' ( uniform texture2DMS)
0:16 Test condition and select ( temp 2-component vector of float)
0:16 Test condition and select ( temp 2-component vector of float): no shortcircuit
0:16 Condition
0:16 Compare Equal ( temp bool)
0:16 '@sampleCount' ( temp uint)
@ -29,7 +29,7 @@ gl_FragCoord origin is upper left
0:? -0.250000
0:16 'sample' ( in int)
0:16 false case
0:16 Test condition and select ( temp 2-component vector of float)
0:16 Test condition and select ( temp 2-component vector of float): no shortcircuit
0:16 Condition
0:16 Compare Equal ( temp bool)
0:16 '@sampleCount' ( temp uint)
@ -48,7 +48,7 @@ gl_FragCoord origin is upper left
0:? 0.375000
0:16 'sample' ( in int)
0:16 false case
0:16 Test condition and select ( temp 2-component vector of float)
0:16 Test condition and select ( temp 2-component vector of float): no shortcircuit
0:16 Condition
0:16 Compare Equal ( temp bool)
0:16 '@sampleCount' ( temp uint)
@ -75,7 +75,7 @@ gl_FragCoord origin is upper left
0:? -0.437500
0:16 'sample' ( in int)
0:16 false case
0:16 Test condition and select ( temp 2-component vector of float)
0:16 Test condition and select ( temp 2-component vector of float): no shortcircuit
0:16 Condition
0:16 Compare Equal ( temp bool)
0:16 '@sampleCount' ( temp uint)
@ -129,7 +129,7 @@ gl_FragCoord origin is upper left
0:17 '@sampleCount' ( temp uint)
0:17 imageQuerySamples ( temp uint)
0:17 'g_tTex2dmsf4a' ( uniform texture2DMSArray)
0:17 Test condition and select ( temp 2-component vector of float)
0:17 Test condition and select ( temp 2-component vector of float): no shortcircuit
0:17 Condition
0:17 Compare Equal ( temp bool)
0:17 '@sampleCount' ( temp uint)
@ -144,7 +144,7 @@ gl_FragCoord origin is upper left
0:? -0.250000
0:17 'sample' ( in int)
0:17 false case
0:17 Test condition and select ( temp 2-component vector of float)
0:17 Test condition and select ( temp 2-component vector of float): no shortcircuit
0:17 Condition
0:17 Compare Equal ( temp bool)
0:17 '@sampleCount' ( temp uint)
@ -163,7 +163,7 @@ gl_FragCoord origin is upper left
0:? 0.375000
0:17 'sample' ( in int)
0:17 false case
0:17 Test condition and select ( temp 2-component vector of float)
0:17 Test condition and select ( temp 2-component vector of float): no shortcircuit
0:17 Condition
0:17 Compare Equal ( temp bool)
0:17 '@sampleCount' ( temp uint)
@ -190,7 +190,7 @@ gl_FragCoord origin is upper left
0:? -0.437500
0:17 'sample' ( in int)
0:17 false case
0:17 Test condition and select ( temp 2-component vector of float)
0:17 Test condition and select ( temp 2-component vector of float): no shortcircuit
0:17 Condition
0:17 Compare Equal ( temp bool)
0:17 '@sampleCount' ( temp uint)
@ -305,7 +305,7 @@ gl_FragCoord origin is upper left
0:16 '@sampleCount' ( temp uint)
0:16 imageQuerySamples ( temp uint)
0:16 'g_tTex2dmsf4' ( uniform texture2DMS)
0:16 Test condition and select ( temp 2-component vector of float)
0:16 Test condition and select ( temp 2-component vector of float): no shortcircuit
0:16 Condition
0:16 Compare Equal ( temp bool)
0:16 '@sampleCount' ( temp uint)
@ -320,7 +320,7 @@ gl_FragCoord origin is upper left
0:? -0.250000
0:16 'sample' ( in int)
0:16 false case
0:16 Test condition and select ( temp 2-component vector of float)
0:16 Test condition and select ( temp 2-component vector of float): no shortcircuit
0:16 Condition
0:16 Compare Equal ( temp bool)
0:16 '@sampleCount' ( temp uint)
@ -339,7 +339,7 @@ gl_FragCoord origin is upper left
0:? 0.375000
0:16 'sample' ( in int)
0:16 false case
0:16 Test condition and select ( temp 2-component vector of float)
0:16 Test condition and select ( temp 2-component vector of float): no shortcircuit
0:16 Condition
0:16 Compare Equal ( temp bool)
0:16 '@sampleCount' ( temp uint)
@ -366,7 +366,7 @@ gl_FragCoord origin is upper left
0:? -0.437500
0:16 'sample' ( in int)
0:16 false case
0:16 Test condition and select ( temp 2-component vector of float)
0:16 Test condition and select ( temp 2-component vector of float): no shortcircuit
0:16 Condition
0:16 Compare Equal ( temp bool)
0:16 '@sampleCount' ( temp uint)
@ -420,7 +420,7 @@ gl_FragCoord origin is upper left
0:17 '@sampleCount' ( temp uint)
0:17 imageQuerySamples ( temp uint)
0:17 'g_tTex2dmsf4a' ( uniform texture2DMSArray)
0:17 Test condition and select ( temp 2-component vector of float)
0:17 Test condition and select ( temp 2-component vector of float): no shortcircuit
0:17 Condition
0:17 Compare Equal ( temp bool)
0:17 '@sampleCount' ( temp uint)
@ -435,7 +435,7 @@ gl_FragCoord origin is upper left
0:? -0.250000
0:17 'sample' ( in int)
0:17 false case
0:17 Test condition and select ( temp 2-component vector of float)
0:17 Test condition and select ( temp 2-component vector of float): no shortcircuit
0:17 Condition
0:17 Compare Equal ( temp bool)
0:17 '@sampleCount' ( temp uint)
@ -454,7 +454,7 @@ gl_FragCoord origin is upper left
0:? 0.375000
0:17 'sample' ( in int)
0:17 false case
0:17 Test condition and select ( temp 2-component vector of float)
0:17 Test condition and select ( temp 2-component vector of float): no shortcircuit
0:17 Condition
0:17 Compare Equal ( temp bool)
0:17 '@sampleCount' ( temp uint)
@ -481,7 +481,7 @@ gl_FragCoord origin is upper left
0:? -0.437500
0:17 'sample' ( in int)
0:17 false case
0:17 Test condition and select ( temp 2-component vector of float)
0:17 Test condition and select ( temp 2-component vector of float): no shortcircuit
0:17 Condition
0:17 Compare Equal ( temp bool)
0:17 '@sampleCount' ( temp uint)
@ -579,13 +579,13 @@ gl_FragCoord origin is upper left
// Module Version 10000
// Generated by (magic number): 80004
// Id's are bound by 221
// Id's are bound by 198
Capability Shader
Capability ImageQuery
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 204 211 215
EntryPoint Fragment 4 "main" 181 188 192
ExecutionMode 4 OriginUpperLeft
Source HLSL 500
Name 4 "main"
@ -597,33 +597,33 @@ gl_FragCoord origin is upper left
Name 17 "r00"
Name 20 "@sampleCount"
Name 23 "g_tTex2dmsf4"
Name 42 "indexable"
Name 65 "indexable"
Name 96 "indexable"
Name 129 "indexable"
Name 138 "r01"
Name 139 "@sampleCount"
Name 142 "g_tTex2dmsf4a"
Name 151 "indexable"
Name 161 "indexable"
Name 171 "indexable"
Name 181 "indexable"
Name 190 "psout"
Name 202 "sample"
Name 204 "sample"
Name 206 "flattenTemp"
Name 207 "param"
Name 211 "@entryPointOutput.Color"
Name 215 "@entryPointOutput.Depth"
Name 220 "g_sSamp"
Name 39 "indexable"
Name 58 "indexable"
Name 85 "indexable"
Name 114 "indexable"
Name 127 "r01"
Name 128 "@sampleCount"
Name 131 "g_tTex2dmsf4a"
Name 137 "indexable"
Name 143 "indexable"
Name 149 "indexable"
Name 155 "indexable"
Name 167 "psout"
Name 179 "sample"
Name 181 "sample"
Name 183 "flattenTemp"
Name 184 "param"
Name 188 "@entryPointOutput.Color"
Name 192 "@entryPointOutput.Depth"
Name 197 "g_sSamp"
Decorate 23(g_tTex2dmsf4) DescriptorSet 0
Decorate 142(g_tTex2dmsf4a) DescriptorSet 0
Decorate 204(sample) Flat
Decorate 204(sample) Location 0
Decorate 211(@entryPointOutput.Color) Location 0
Decorate 215(@entryPointOutput.Depth) BuiltIn FragDepth
Decorate 220(g_sSamp) DescriptorSet 0
Decorate 220(g_sSamp) Binding 0
Decorate 131(g_tTex2dmsf4a) DescriptorSet 0
Decorate 181(sample) Flat
Decorate 181(sample) Location 0
Decorate 188(@entryPointOutput.Color) Location 0
Decorate 192(@entryPointOutput.Depth) BuiltIn FragDepth
Decorate 197(g_sSamp) DescriptorSet 0
Decorate 197(g_sSamp) Binding 0
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
@ -639,110 +639,111 @@ gl_FragCoord origin is upper left
21: TypeImage 8(float) 2D multi-sampled sampled format:Unknown
22: TypePointer UniformConstant 21
23(g_tTex2dmsf4): 22(ptr) Variable UniformConstant
28: 6(int) Constant 2
29: TypeBool
33: 18(int) Constant 2
34: TypeArray 15(fvec2) 33
35: 8(float) Constant 1048576000
36: 15(fvec2) ConstantComposite 35 35
37: 8(float) Constant 3196059648
38: 15(fvec2) ConstantComposite 37 37
39: 34 ConstantComposite 36 38
41: TypePointer Function 34
48: 6(int) Constant 4
52: 18(int) Constant 4
53: TypeArray 15(fvec2) 52
54: 8(float) Constant 3187671040
55: 8(float) Constant 3200253952
56: 15(fvec2) ConstantComposite 54 55
57: 8(float) Constant 1052770304
58: 15(fvec2) ConstantComposite 57 54
59: 8(float) Constant 1040187392
60: 15(fvec2) ConstantComposite 55 59
61: 15(fvec2) ConstantComposite 59 57
62: 53 ConstantComposite 56 58 60 61
64: TypePointer Function 53
71: 6(int) Constant 8
75: 18(int) Constant 8
76: TypeArray 15(fvec2) 75
77: 8(float) Constant 1031798784
78: 8(float) Constant 3191865344
79: 15(fvec2) ConstantComposite 77 78
80: 8(float) Constant 3179282432
81: 8(float) Constant 1044381696
82: 15(fvec2) ConstantComposite 80 81
83: 8(float) Constant 1050673152
84: 15(fvec2) ConstantComposite 83 77
85: 8(float) Constant 3198156800
86: 15(fvec2) ConstantComposite 78 85
87: 15(fvec2) ConstantComposite 85 83
88: 8(float) Constant 3202351104
89: 15(fvec2) ConstantComposite 88 80
90: 8(float) Constant 1054867456
91: 15(fvec2) ConstantComposite 81 90
92: 15(fvec2) ConstantComposite 90 88
93: 76 ConstantComposite 79 82 84 86 87 89 91 92
95: TypePointer Function 76
102: 6(int) Constant 16
106: 18(int) Constant 16
107: TypeArray 15(fvec2) 106
108: 15(fvec2) ConstantComposite 77 77
109: 15(fvec2) ConstantComposite 80 78
110: 15(fvec2) ConstantComposite 78 59
111: 15(fvec2) ConstantComposite 35 80
112: 15(fvec2) ConstantComposite 85 54
113: 15(fvec2) ConstantComposite 59 83
114: 15(fvec2) ConstantComposite 83 81
115: 15(fvec2) ConstantComposite 81 85
116: 15(fvec2) ConstantComposite 54 57
117: 8(float) Constant 0
118: 15(fvec2) ConstantComposite 117 88
119: 15(fvec2) ConstantComposite 37 55
120: 15(fvec2) ConstantComposite 55 35
121: 8(float) Constant 3204448256
122: 15(fvec2) ConstantComposite 121 117
123: 15(fvec2) ConstantComposite 90 37
124: 15(fvec2) ConstantComposite 57 90
125: 15(fvec2) ConstantComposite 88 121
126: 107 ConstantComposite 108 109 110 111 112 113 114 115 116 118 119 120 122 123 124 125
128: TypePointer Function 107
133: 15(fvec2) ConstantComposite 117 117
140: TypeImage 8(float) 2D array multi-sampled sampled format:Unknown
141: TypePointer UniformConstant 140
142(g_tTex2dmsf4a): 141(ptr) Variable UniformConstant
189: TypePointer Function 10(PS_OUTPUT)
191: 6(int) Constant 0
192: 8(float) Constant 1065353216
193: 9(fvec4) ConstantComposite 192 192 192 192
194: TypePointer Function 9(fvec4)
196: 6(int) Constant 1
197: TypePointer Function 8(float)
203: TypePointer Input 6(int)
204(sample): 203(ptr) Variable Input
210: TypePointer Output 9(fvec4)
211(@entryPointOutput.Color): 210(ptr) Variable Output
214: TypePointer Output 8(float)
215(@entryPointOutput.Depth): 214(ptr) Variable Output
218: TypeSampler
219: TypePointer UniformConstant 218
220(g_sSamp): 219(ptr) Variable UniformConstant
27: 6(int) Constant 2
28: TypeBool
30: 18(int) Constant 2
31: TypeArray 15(fvec2) 30
32: 8(float) Constant 1048576000
33: 15(fvec2) ConstantComposite 32 32
34: 8(float) Constant 3196059648
35: 15(fvec2) ConstantComposite 34 34
36: 31 ConstantComposite 33 35
38: TypePointer Function 31
43: 6(int) Constant 4
45: 18(int) Constant 4
46: TypeArray 15(fvec2) 45
47: 8(float) Constant 3187671040
48: 8(float) Constant 3200253952
49: 15(fvec2) ConstantComposite 47 48
50: 8(float) Constant 1052770304
51: 15(fvec2) ConstantComposite 50 47
52: 8(float) Constant 1040187392
53: 15(fvec2) ConstantComposite 48 52
54: 15(fvec2) ConstantComposite 52 50
55: 46 ConstantComposite 49 51 53 54
57: TypePointer Function 46
62: 6(int) Constant 8
64: 18(int) Constant 8
65: TypeArray 15(fvec2) 64
66: 8(float) Constant 1031798784
67: 8(float) Constant 3191865344
68: 15(fvec2) ConstantComposite 66 67
69: 8(float) Constant 3179282432
70: 8(float) Constant 1044381696
71: 15(fvec2) ConstantComposite 69 70
72: 8(float) Constant 1050673152
73: 15(fvec2) ConstantComposite 72 66
74: 8(float) Constant 3198156800
75: 15(fvec2) ConstantComposite 67 74
76: 15(fvec2) ConstantComposite 74 72
77: 8(float) Constant 3202351104
78: 15(fvec2) ConstantComposite 77 69
79: 8(float) Constant 1054867456
80: 15(fvec2) ConstantComposite 70 79
81: 15(fvec2) ConstantComposite 79 77
82: 65 ConstantComposite 68 71 73 75 76 78 80 81
84: TypePointer Function 65
89: 6(int) Constant 16
91: 18(int) Constant 16
92: TypeArray 15(fvec2) 91
93: 15(fvec2) ConstantComposite 66 66
94: 15(fvec2) ConstantComposite 69 67
95: 15(fvec2) ConstantComposite 67 52
96: 15(fvec2) ConstantComposite 32 69
97: 15(fvec2) ConstantComposite 74 47
98: 15(fvec2) ConstantComposite 52 72
99: 15(fvec2) ConstantComposite 72 70
100: 15(fvec2) ConstantComposite 70 74
101: 15(fvec2) ConstantComposite 47 50
102: 8(float) Constant 0
103: 15(fvec2) ConstantComposite 102 77
104: 15(fvec2) ConstantComposite 34 48
105: 15(fvec2) ConstantComposite 48 32
106: 8(float) Constant 3204448256
107: 15(fvec2) ConstantComposite 106 102
108: 15(fvec2) ConstantComposite 79 34
109: 15(fvec2) ConstantComposite 50 79
110: 15(fvec2) ConstantComposite 77 106
111: 92 ConstantComposite 93 94 95 96 97 98 99 100 101 103 104 105 107 108 109 110
113: TypePointer Function 92
117: 15(fvec2) ConstantComposite 102 102
118: TypeVector 28(bool) 2
129: TypeImage 8(float) 2D array multi-sampled sampled format:Unknown
130: TypePointer UniformConstant 129
131(g_tTex2dmsf4a): 130(ptr) Variable UniformConstant
166: TypePointer Function 10(PS_OUTPUT)
168: 6(int) Constant 0
169: 8(float) Constant 1065353216
170: 9(fvec4) ConstantComposite 169 169 169 169
171: TypePointer Function 9(fvec4)
173: 6(int) Constant 1
174: TypePointer Function 8(float)
180: TypePointer Input 6(int)
181(sample): 180(ptr) Variable Input
187: TypePointer Output 9(fvec4)
188(@entryPointOutput.Color): 187(ptr) Variable Output
191: TypePointer Output 8(float)
192(@entryPointOutput.Depth): 191(ptr) Variable Output
195: TypeSampler
196: TypePointer UniformConstant 195
197(g_sSamp): 196(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
202(sample): 7(ptr) Variable Function
206(flattenTemp): 189(ptr) Variable Function
207(param): 7(ptr) Variable Function
205: 6(int) Load 204(sample)
Store 202(sample) 205
208: 6(int) Load 202(sample)
Store 207(param) 208
209:10(PS_OUTPUT) FunctionCall 13(@main(i1;) 207(param)
Store 206(flattenTemp) 209
212: 194(ptr) AccessChain 206(flattenTemp) 191
213: 9(fvec4) Load 212
Store 211(@entryPointOutput.Color) 213
216: 197(ptr) AccessChain 206(flattenTemp) 196
217: 8(float) Load 216
Store 215(@entryPointOutput.Depth) 217
179(sample): 7(ptr) Variable Function
183(flattenTemp): 166(ptr) Variable Function
184(param): 7(ptr) Variable Function
182: 6(int) Load 181(sample)
Store 179(sample) 182
185: 6(int) Load 179(sample)
Store 184(param) 185
186:10(PS_OUTPUT) FunctionCall 13(@main(i1;) 184(param)
Store 183(flattenTemp) 186
189: 171(ptr) AccessChain 183(flattenTemp) 168
190: 9(fvec4) Load 189
Store 188(@entryPointOutput.Color) 190
193: 174(ptr) AccessChain 183(flattenTemp) 173
194: 8(float) Load 193
Store 192(@entryPointOutput.Depth) 194
Return
FunctionEnd
13(@main(i1;):10(PS_OUTPUT) Function None 11
@ -750,165 +751,93 @@ gl_FragCoord origin is upper left
14: Label
17(r00): 16(ptr) Variable Function
20(@sampleCount): 19(ptr) Variable Function
26: 16(ptr) Variable Function
42(indexable): 41(ptr) Variable Function
46: 16(ptr) Variable Function
65(indexable): 64(ptr) Variable Function
69: 16(ptr) Variable Function
96(indexable): 95(ptr) Variable Function
100: 16(ptr) Variable Function
129(indexable): 128(ptr) Variable Function
138(r01): 16(ptr) Variable Function
139(@sampleCount): 19(ptr) Variable Function
145: 16(ptr) Variable Function
151(indexable): 41(ptr) Variable Function
155: 16(ptr) Variable Function
161(indexable): 64(ptr) Variable Function
165: 16(ptr) Variable Function
171(indexable): 95(ptr) Variable Function
175: 16(ptr) Variable Function
181(indexable): 128(ptr) Variable Function
190(psout): 189(ptr) Variable Function
39(indexable): 38(ptr) Variable Function
58(indexable): 57(ptr) Variable Function
85(indexable): 84(ptr) Variable Function
114(indexable): 113(ptr) Variable Function
127(r01): 16(ptr) Variable Function
128(@sampleCount): 19(ptr) Variable Function
137(indexable): 38(ptr) Variable Function
143(indexable): 57(ptr) Variable Function
149(indexable): 84(ptr) Variable Function
155(indexable): 113(ptr) Variable Function
167(psout): 166(ptr) Variable Function
24: 21 Load 23(g_tTex2dmsf4)
25: 18(int) ImageQuerySamples 24
Store 20(@sampleCount) 25
27: 18(int) Load 20(@sampleCount)
30: 29(bool) IEqual 27 28
SelectionMerge 32 None
BranchConditional 30 31 45
31: Label
40: 6(int) Load 12(sample)
Store 42(indexable) 39
43: 16(ptr) AccessChain 42(indexable) 40
44: 15(fvec2) Load 43
Store 26 44
Branch 32
45: Label
47: 18(int) Load 20(@sampleCount)
49: 29(bool) IEqual 47 48
SelectionMerge 51 None
BranchConditional 49 50 68
50: Label
63: 6(int) Load 12(sample)
Store 65(indexable) 62
66: 16(ptr) AccessChain 65(indexable) 63
67: 15(fvec2) Load 66
Store 46 67
Branch 51
68: Label
70: 18(int) Load 20(@sampleCount)
72: 29(bool) IEqual 70 71
SelectionMerge 74 None
BranchConditional 72 73 99
73: Label
94: 6(int) Load 12(sample)
Store 96(indexable) 93
97: 16(ptr) AccessChain 96(indexable) 94
98: 15(fvec2) Load 97
Store 69 98
Branch 74
99: Label
101: 18(int) Load 20(@sampleCount)
103: 29(bool) IEqual 101 102
SelectionMerge 105 None
BranchConditional 103 104 132
104: Label
127: 6(int) Load 12(sample)
Store 129(indexable) 126
130: 16(ptr) AccessChain 129(indexable) 127
131: 15(fvec2) Load 130
Store 100 131
Branch 105
132: Label
Store 100 133
Branch 105
105: Label
134: 15(fvec2) Load 100
Store 69 134
Branch 74
74: Label
135: 15(fvec2) Load 69
Store 46 135
Branch 51
51: Label
136: 15(fvec2) Load 46
Store 26 136
Branch 32
32: Label
137: 15(fvec2) Load 26
Store 17(r00) 137
143: 140 Load 142(g_tTex2dmsf4a)
144: 18(int) ImageQuerySamples 143
Store 139(@sampleCount) 144
146: 18(int) Load 139(@sampleCount)
147: 29(bool) IEqual 146 28
SelectionMerge 149 None
BranchConditional 147 148 154
148: Label
150: 6(int) Load 12(sample)
Store 151(indexable) 39
152: 16(ptr) AccessChain 151(indexable) 150
153: 15(fvec2) Load 152
Store 145 153
Branch 149
154: Label
156: 18(int) Load 139(@sampleCount)
157: 29(bool) IEqual 156 48
SelectionMerge 159 None
BranchConditional 157 158 164
158: Label
160: 6(int) Load 12(sample)
Store 161(indexable) 62
162: 16(ptr) AccessChain 161(indexable) 160
163: 15(fvec2) Load 162
Store 155 163
Branch 159
164: Label
166: 18(int) Load 139(@sampleCount)
167: 29(bool) IEqual 166 71
SelectionMerge 169 None
BranchConditional 167 168 174
168: Label
170: 6(int) Load 12(sample)
Store 171(indexable) 93
172: 16(ptr) AccessChain 171(indexable) 170
173: 15(fvec2) Load 172
Store 165 173
Branch 169
174: Label
176: 18(int) Load 139(@sampleCount)
177: 29(bool) IEqual 176 102
SelectionMerge 179 None
BranchConditional 177 178 184
178: Label
180: 6(int) Load 12(sample)
Store 181(indexable) 126
182: 16(ptr) AccessChain 181(indexable) 180
183: 15(fvec2) Load 182
Store 175 183
Branch 179
184: Label
Store 175 133
Branch 179
179: Label
185: 15(fvec2) Load 175
Store 165 185
Branch 169
169: Label
186: 15(fvec2) Load 165
Store 155 186
Branch 159
159: Label
187: 15(fvec2) Load 155
Store 145 187
Branch 149
149: Label
188: 15(fvec2) Load 145
Store 138(r01) 188
195: 194(ptr) AccessChain 190(psout) 191
Store 195 193
198: 197(ptr) AccessChain 190(psout) 196
Store 198 192
199:10(PS_OUTPUT) Load 190(psout)
ReturnValue 199
26: 18(int) Load 20(@sampleCount)
29: 28(bool) IEqual 26 27
37: 6(int) Load 12(sample)
Store 39(indexable) 36
40: 16(ptr) AccessChain 39(indexable) 37
41: 15(fvec2) Load 40
42: 18(int) Load 20(@sampleCount)
44: 28(bool) IEqual 42 43
56: 6(int) Load 12(sample)
Store 58(indexable) 55
59: 16(ptr) AccessChain 58(indexable) 56
60: 15(fvec2) Load 59
61: 18(int) Load 20(@sampleCount)
63: 28(bool) IEqual 61 62
83: 6(int) Load 12(sample)
Store 85(indexable) 82
86: 16(ptr) AccessChain 85(indexable) 83
87: 15(fvec2) Load 86
88: 18(int) Load 20(@sampleCount)
90: 28(bool) IEqual 88 89
112: 6(int) Load 12(sample)
Store 114(indexable) 111
115: 16(ptr) AccessChain 114(indexable) 112
116: 15(fvec2) Load 115
119: 118(bvec2) CompositeConstruct 90 90
120: 15(fvec2) Select 119 116 117
121: 118(bvec2) CompositeConstruct 63 63
122: 15(fvec2) Select 121 87 120
123: 118(bvec2) CompositeConstruct 44 44
124: 15(fvec2) Select 123 60 122
125: 118(bvec2) CompositeConstruct 29 29
126: 15(fvec2) Select 125 41 124
Store 17(r00) 126
132: 129 Load 131(g_tTex2dmsf4a)
133: 18(int) ImageQuerySamples 132
Store 128(@sampleCount) 133
134: 18(int) Load 128(@sampleCount)
135: 28(bool) IEqual 134 27
136: 6(int) Load 12(sample)
Store 137(indexable) 36
138: 16(ptr) AccessChain 137(indexable) 136
139: 15(fvec2) Load 138
140: 18(int) Load 128(@sampleCount)
141: 28(bool) IEqual 140 43
142: 6(int) Load 12(sample)
Store 143(indexable) 55
144: 16(ptr) AccessChain 143(indexable) 142
145: 15(fvec2) Load 144
146: 18(int) Load 128(@sampleCount)
147: 28(bool) IEqual 146 62
148: 6(int) Load 12(sample)
Store 149(indexable) 82
150: 16(ptr) AccessChain 149(indexable) 148
151: 15(fvec2) Load 150
152: 18(int) Load 128(@sampleCount)
153: 28(bool) IEqual 152 89
154: 6(int) Load 12(sample)
Store 155(indexable) 111
156: 16(ptr) AccessChain 155(indexable) 154
157: 15(fvec2) Load 156
158: 118(bvec2) CompositeConstruct 153 153
159: 15(fvec2) Select 158 157 117
160: 118(bvec2) CompositeConstruct 147 147
161: 15(fvec2) Select 160 151 159
162: 118(bvec2) CompositeConstruct 141 141
163: 15(fvec2) Select 162 145 161
164: 118(bvec2) CompositeConstruct 135 135
165: 15(fvec2) Select 164 139 163
Store 127(r01) 165
172: 171(ptr) AccessChain 167(psout) 168
Store 172 170
175: 174(ptr) AccessChain 167(psout) 173
Store 175 169
176:10(PS_OUTPUT) Load 167(psout)
ReturnValue 176
FunctionEnd