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.
diff --git a/Test/baseResults/hlsl.conditional.frag.out b/Test/baseResults/hlsl.conditional.frag.out
index 3c81a9f..b059009 100755
--- a/Test/baseResults/hlsl.conditional.frag.out
+++ b/Test/baseResults/hlsl.conditional.frag.out
@@ -78,7 +78,7 @@
0:17 Sequence
0:17 move second child to first child ( temp 4-component vector of float)
0:17 'ret' ( temp 4-component vector of float)
-0:17 Test condition and select ( temp 4-component vector of float)
+0:17 Test condition and select ( temp 4-component vector of float): no shortcircuit
0:17 Condition
0:17 Compare Not Equal ( temp bool)
0:17 t: direct index for structure ( uniform float)
@@ -169,7 +169,7 @@
0:37 'e' ( temp int)
0:37 move second child to first child ( temp int)
0:37 'a' ( temp int)
-0:37 Test condition and select ( temp int)
+0:37 Test condition and select ( temp int): no shortcircuit
0:37 Condition
0:37 Convert int to bool ( temp bool)
0:37 'b' ( temp int)
@@ -182,7 +182,7 @@
0:37 10 (const int)
0:37 move second child to first child ( temp int)
0:37 'b' ( temp int)
-0:37 Test condition and select ( temp int)
+0:37 Test condition and select ( temp int): no shortcircuit
0:37 Condition
0:37 Convert int to bool ( temp bool)
0:37 'a' ( temp int)
@@ -195,7 +195,7 @@
0:37 11 (const int)
0:39 move second child to first child ( temp 4-component vector of float)
0:39 'f' ( temp 4-component vector of float)
-0:39 Test condition and select ( temp 4-component vector of float)
+0:39 Test condition and select ( temp 4-component vector of float): no shortcircuit
0:39 Condition
0:39 Compare Less Than ( temp bool)
0:39 direct index ( temp float)
@@ -341,7 +341,7 @@
0:17 Sequence
0:17 move second child to first child ( temp 4-component vector of float)
0:17 'ret' ( temp 4-component vector of float)
-0:17 Test condition and select ( temp 4-component vector of float)
+0:17 Test condition and select ( temp 4-component vector of float): no shortcircuit
0:17 Condition
0:17 Compare Not Equal ( temp bool)
0:17 t: direct index for structure ( uniform float)
@@ -432,7 +432,7 @@
0:37 'e' ( temp int)
0:37 move second child to first child ( temp int)
0:37 'a' ( temp int)
-0:37 Test condition and select ( temp int)
+0:37 Test condition and select ( temp int): no shortcircuit
0:37 Condition
0:37 Convert int to bool ( temp bool)
0:37 'b' ( temp int)
@@ -445,7 +445,7 @@
0:37 10 (const int)
0:37 move second child to first child ( temp int)
0:37 'b' ( temp int)
-0:37 Test condition and select ( temp int)
+0:37 Test condition and select ( temp int): no shortcircuit
0:37 Condition
0:37 Convert int to bool ( temp bool)
0:37 'a' ( temp int)
@@ -458,7 +458,7 @@
0:37 11 (const int)
0:39 move second child to first child ( temp 4-component vector of float)
0:39 'f' ( temp 4-component vector of float)
-0:39 Test condition and select ( temp 4-component vector of float)
+0:39 Test condition and select ( temp 4-component vector of float): no shortcircuit
0:39 Condition
0:39 Compare Less Than ( temp bool)
0:39 direct index ( temp float)
@@ -523,12 +523,12 @@
// Module Version 10000
// Generated by (magic number): 80004
-// Id's are bound by 220
+// Id's are bound by 206
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint Fragment 4 "PixelShaderFunction" 213 216
+ EntryPoint Fragment 4 "PixelShaderFunction" 199 202
ExecutionMode 4 OriginUpperLeft
Source HLSL 500
Name 4 "PixelShaderFunction"
@@ -548,20 +548,20 @@
MemberName 29($Global) 4 "f"
Name 31 ""
Name 85 "ret"
- Name 113 "a"
- Name 115 "b"
- Name 117 "c"
- Name 119 "d"
- Name 120 "ret"
- Name 140 "e"
- Name 161 "f"
- Name 200 "param"
- Name 201 "param"
- Name 202 "param"
- Name 211 "input"
- Name 213 "input"
- Name 216 "@entryPointOutput"
- Name 217 "param"
+ Name 110 "a"
+ Name 112 "b"
+ Name 114 "c"
+ Name 116 "d"
+ Name 117 "ret"
+ Name 137 "e"
+ Name 150 "f"
+ Name 186 "param"
+ Name 187 "param"
+ Name 188 "param"
+ Name 197 "input"
+ Name 199 "input"
+ Name 202 "@entryPointOutput"
+ Name 203 "param"
MemberDecorate 29($Global) 0 Offset 0
MemberDecorate 29($Global) 1 Offset 16
MemberDecorate 29($Global) 2 Offset 32
@@ -569,8 +569,8 @@
MemberDecorate 29($Global) 4 Offset 52
Decorate 29($Global) Block
Decorate 31 DescriptorSet 0
- Decorate 213(input) Location 0
- Decorate 216(@entryPointOutput) Location 0
+ Decorate 199(input) Location 0
+ Decorate 202(@entryPointOutput) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -598,41 +598,41 @@
48: 32(int) Constant 4
49: TypePointer Uniform 6(float)
53: 32(int) Constant 3
- 100: 6(float) Constant 1065353216
- 101: 7(fvec4) ConstantComposite 100 100 100 100
- 112: TypePointer Function 32(int)
- 114: 32(int) Constant 5
- 116: 32(int) Constant 6
- 118: 32(int) Constant 7
- 143: TypeInt 32 0
- 144: 143(int) Constant 0
- 150: 32(int) Constant 10
- 159: 32(int) Constant 11
- 163: TypePointer Function 6(float)
- 166: 143(int) Constant 1
- 192: 13(bool) ConstantTrue
- 193: 13(bool) ConstantFalse
- 194: 14(bvec2) ConstantComposite 192 193
- 195: 6(float) Constant 1073741824
- 196: 16(fvec2) ConstantComposite 100 195
- 197: 6(float) Constant 1077936128
- 198: 6(float) Constant 1082130432
- 199: 16(fvec2) ConstantComposite 197 198
- 204: 6(float) Constant 1092616192
- 212: TypePointer Input 7(fvec4)
- 213(input): 212(ptr) Variable Input
- 215: TypePointer Output 7(fvec4)
-216(@entryPointOutput): 215(ptr) Variable Output
+ 96: 6(float) Constant 1065353216
+ 97: 7(fvec4) ConstantComposite 96 96 96 96
+ 109: TypePointer Function 32(int)
+ 111: 32(int) Constant 5
+ 113: 32(int) Constant 6
+ 115: 32(int) Constant 7
+ 139: TypeInt 32 0
+ 140: 139(int) Constant 0
+ 143: 32(int) Constant 10
+ 148: 32(int) Constant 11
+ 151: TypePointer Function 6(float)
+ 154: 139(int) Constant 1
+ 178: 13(bool) ConstantTrue
+ 179: 13(bool) ConstantFalse
+ 180: 14(bvec2) ConstantComposite 178 179
+ 181: 6(float) Constant 1073741824
+ 182: 16(fvec2) ConstantComposite 96 181
+ 183: 6(float) Constant 1077936128
+ 184: 6(float) Constant 1082130432
+ 185: 16(fvec2) ConstantComposite 183 184
+ 190: 6(float) Constant 1092616192
+ 198: TypePointer Input 7(fvec4)
+ 199(input): 198(ptr) Variable Input
+ 201: TypePointer Output 7(fvec4)
+202(@entryPointOutput): 201(ptr) Variable Output
4(PixelShaderFunction): 2 Function None 3
5: Label
- 211(input): 24(ptr) Variable Function
- 217(param): 24(ptr) Variable Function
- 214: 7(fvec4) Load 213(input)
- Store 211(input) 214
- 218: 7(fvec4) Load 211(input)
- Store 217(param) 218
- 219: 7(fvec4) FunctionCall 27(@PixelShaderFunction(vf4;) 217(param)
- Store 216(@entryPointOutput) 219
+ 197(input): 24(ptr) Variable Function
+ 203(param): 24(ptr) Variable Function
+ 200: 7(fvec4) Load 199(input)
+ Store 197(input) 200
+ 204: 7(fvec4) Load 197(input)
+ Store 203(param) 204
+ 205: 7(fvec4) FunctionCall 27(@PixelShaderFunction(vf4;) 203(param)
+ Store 202(@entryPointOutput) 205
Return
FunctionEnd
9(vectorCond(): 7(fvec4) Function None 8
@@ -682,154 +682,116 @@
11(scalarCond(): 7(fvec4) Function None 8
12: Label
85(ret): 24(ptr) Variable Function
- 86: 24(ptr) Variable Function
- 87: 49(ptr) AccessChain 31 53
- 88: 6(float) Load 87
- 89: 49(ptr) AccessChain 31 48
- 90: 6(float) Load 89
- 91: 13(bool) FOrdNotEqual 88 90
- SelectionMerge 93 None
- BranchConditional 91 92 99
- 92: Label
- 94: 49(ptr) AccessChain 31 53
- 95: 6(float) Load 94
- 96: 34(ptr) AccessChain 31 33
- 97: 7(fvec4) Load 96
- 98: 7(fvec4) VectorTimesScalar 97 95
- Store 86 98
- Branch 93
- 99: Label
- Store 86 101
- Branch 93
- 93: Label
- 102: 7(fvec4) Load 86
- Store 85(ret) 102
- 103: 7(fvec4) Load 85(ret)
- ReturnValue 103
+ 86: 49(ptr) AccessChain 31 53
+ 87: 6(float) Load 86
+ 88: 49(ptr) AccessChain 31 48
+ 89: 6(float) Load 88
+ 90: 13(bool) FOrdNotEqual 87 89
+ 91: 49(ptr) AccessChain 31 53
+ 92: 6(float) Load 91
+ 93: 34(ptr) AccessChain 31 33
+ 94: 7(fvec4) Load 93
+ 95: 7(fvec4) VectorTimesScalar 94 92
+ 98: 43(bvec4) CompositeConstruct 90 90 90 90
+ 99: 7(fvec4) Select 98 95 97
+ Store 85(ret) 99
+ 100: 7(fvec4) Load 85(ret)
+ ReturnValue 100
FunctionEnd
22(fbSelect(vb2;vf2;vf2;): 16(fvec2) Function None 18
19(cnd): 15(ptr) FunctionParameter
20(src0): 17(ptr) FunctionParameter
21(src1): 17(ptr) FunctionParameter
23: Label
- 106: 16(fvec2) Load 21(src1)
- 107: 16(fvec2) Load 20(src0)
- 108: 14(bvec2) Load 19(cnd)
- 109: 16(fvec2) Select 108 107 106
- ReturnValue 109
+ 103: 16(fvec2) Load 21(src1)
+ 104: 16(fvec2) Load 20(src0)
+ 105: 14(bvec2) Load 19(cnd)
+ 106: 16(fvec2) Select 105 104 103
+ ReturnValue 106
FunctionEnd
27(@PixelShaderFunction(vf4;): 7(fvec4) Function None 25
26(input): 24(ptr) FunctionParameter
28: Label
- 113(a): 112(ptr) Variable Function
- 115(b): 112(ptr) Variable Function
- 117(c): 112(ptr) Variable Function
- 119(d): 112(ptr) Variable Function
- 120(ret): 24(ptr) Variable Function
- 140(e): 112(ptr) Variable Function
- 141: 112(ptr) Variable Function
- 152: 112(ptr) Variable Function
- 161(f): 24(ptr) Variable Function
- 162: 24(ptr) Variable Function
- 200(param): 15(ptr) Variable Function
- 201(param): 17(ptr) Variable Function
- 202(param): 17(ptr) Variable Function
- Store 113(a) 114
- Store 115(b) 116
- Store 117(c) 118
- Store 119(d) 118
- 121: 32(int) Load 113(a)
- 122: 6(float) ConvertSToF 121
- 123: 7(fvec4) Load 26(input)
- 124: 7(fvec4) VectorTimesScalar 123 122
- 125: 32(int) Load 115(b)
- 126: 6(float) ConvertSToF 125
- 127: 7(fvec4) Load 26(input)
- 128: 7(fvec4) VectorTimesScalar 127 126
- 129: 7(fvec4) FAdd 124 128
- 130: 32(int) Load 117(c)
- 131: 6(float) ConvertSToF 130
- 132: 7(fvec4) Load 26(input)
- 133: 7(fvec4) VectorTimesScalar 132 131
- 134: 7(fvec4) FAdd 129 133
- 135: 32(int) Load 119(d)
- 136: 6(float) ConvertSToF 135
- 137: 7(fvec4) Load 26(input)
- 138: 7(fvec4) VectorTimesScalar 137 136
- 139: 7(fvec4) FAdd 134 138
- Store 120(ret) 139
- 142: 32(int) Load 115(b)
- 145: 13(bool) INotEqual 142 144
- SelectionMerge 147 None
- BranchConditional 145 146 149
- 146: Label
- 148: 32(int) Load 119(d)
- Store 117(c) 148
- Store 141 148
- Branch 147
- 149: Label
- Store 141 150
- Branch 147
- 147: Label
- 151: 32(int) Load 141
- Store 113(a) 151
- Store 140(e) 151
- 153: 32(int) Load 113(a)
- 154: 13(bool) INotEqual 153 144
- SelectionMerge 156 None
- BranchConditional 154 155 158
- 155: Label
- 157: 32(int) Load 117(c)
- Store 119(d) 157
- Store 152 157
- Branch 156
- 158: Label
- Store 152 159
- Branch 156
- 156: Label
- 160: 32(int) Load 152
- Store 115(b) 160
- 164: 163(ptr) AccessChain 120(ret) 144
- 165: 6(float) Load 164
- 167: 163(ptr) AccessChain 26(input) 166
- 168: 6(float) Load 167
- 169: 13(bool) FOrdLessThan 165 168
- SelectionMerge 171 None
- BranchConditional 169 170 176
- 170: Label
- 172: 32(int) Load 117(c)
- 173: 6(float) ConvertSToF 172
- 174: 7(fvec4) Load 26(input)
- 175: 7(fvec4) VectorTimesScalar 174 173
- Store 162 175
- Branch 171
- 176: Label
- 177: 32(int) Load 119(d)
- 178: 6(float) ConvertSToF 177
- 179: 7(fvec4) Load 26(input)
- 180: 7(fvec4) VectorTimesScalar 179 178
- Store 162 180
- Branch 171
- 171: Label
- 181: 7(fvec4) Load 162
- Store 161(f) 181
- 182: 32(int) Load 140(e)
- 183: 6(float) ConvertSToF 182
- 184: 7(fvec4) Load 120(ret)
- 185: 7(fvec4) VectorTimesScalar 184 183
- 186: 7(fvec4) Load 161(f)
- 187: 7(fvec4) FAdd 185 186
- 188: 7(fvec4) FunctionCall 9(vectorCond()
- 189: 7(fvec4) FAdd 187 188
- 190: 7(fvec4) FunctionCall 11(scalarCond()
- 191: 7(fvec4) FAdd 189 190
- Store 200(param) 194
- Store 201(param) 196
- Store 202(param) 199
- 203: 16(fvec2) FunctionCall 22(fbSelect(vb2;vf2;vf2;) 200(param) 201(param) 202(param)
- 205: 6(float) CompositeExtract 203 0
- 206: 6(float) CompositeExtract 203 1
- 207: 7(fvec4) CompositeConstruct 205 206 204 204
- 208: 7(fvec4) FAdd 191 207
- ReturnValue 208
+ 110(a): 109(ptr) Variable Function
+ 112(b): 109(ptr) Variable Function
+ 114(c): 109(ptr) Variable Function
+ 116(d): 109(ptr) Variable Function
+ 117(ret): 24(ptr) Variable Function
+ 137(e): 109(ptr) Variable Function
+ 150(f): 24(ptr) Variable Function
+ 186(param): 15(ptr) Variable Function
+ 187(param): 17(ptr) Variable Function
+ 188(param): 17(ptr) Variable Function
+ Store 110(a) 111
+ Store 112(b) 113
+ Store 114(c) 115
+ Store 116(d) 115
+ 118: 32(int) Load 110(a)
+ 119: 6(float) ConvertSToF 118
+ 120: 7(fvec4) Load 26(input)
+ 121: 7(fvec4) VectorTimesScalar 120 119
+ 122: 32(int) Load 112(b)
+ 123: 6(float) ConvertSToF 122
+ 124: 7(fvec4) Load 26(input)
+ 125: 7(fvec4) VectorTimesScalar 124 123
+ 126: 7(fvec4) FAdd 121 125
+ 127: 32(int) Load 114(c)
+ 128: 6(float) ConvertSToF 127
+ 129: 7(fvec4) Load 26(input)
+ 130: 7(fvec4) VectorTimesScalar 129 128
+ 131: 7(fvec4) FAdd 126 130
+ 132: 32(int) Load 116(d)
+ 133: 6(float) ConvertSToF 132
+ 134: 7(fvec4) Load 26(input)
+ 135: 7(fvec4) VectorTimesScalar 134 133
+ 136: 7(fvec4) FAdd 131 135
+ Store 117(ret) 136
+ 138: 32(int) Load 112(b)
+ 141: 13(bool) INotEqual 138 140
+ 142: 32(int) Load 116(d)
+ Store 114(c) 142
+ 144: 32(int) Select 141 142 143
+ Store 110(a) 144
+ Store 137(e) 144
+ 145: 32(int) Load 110(a)
+ 146: 13(bool) INotEqual 145 140
+ 147: 32(int) Load 114(c)
+ Store 116(d) 147
+ 149: 32(int) Select 146 147 148
+ Store 112(b) 149
+ 152: 151(ptr) AccessChain 117(ret) 140
+ 153: 6(float) Load 152
+ 155: 151(ptr) AccessChain 26(input) 154
+ 156: 6(float) Load 155
+ 157: 13(bool) FOrdLessThan 153 156
+ 158: 32(int) Load 114(c)
+ 159: 6(float) ConvertSToF 158
+ 160: 7(fvec4) Load 26(input)
+ 161: 7(fvec4) VectorTimesScalar 160 159
+ 162: 32(int) Load 116(d)
+ 163: 6(float) ConvertSToF 162
+ 164: 7(fvec4) Load 26(input)
+ 165: 7(fvec4) VectorTimesScalar 164 163
+ 166: 43(bvec4) CompositeConstruct 157 157 157 157
+ 167: 7(fvec4) Select 166 161 165
+ Store 150(f) 167
+ 168: 32(int) Load 137(e)
+ 169: 6(float) ConvertSToF 168
+ 170: 7(fvec4) Load 117(ret)
+ 171: 7(fvec4) VectorTimesScalar 170 169
+ 172: 7(fvec4) Load 150(f)
+ 173: 7(fvec4) FAdd 171 172
+ 174: 7(fvec4) FunctionCall 9(vectorCond()
+ 175: 7(fvec4) FAdd 173 174
+ 176: 7(fvec4) FunctionCall 11(scalarCond()
+ 177: 7(fvec4) FAdd 175 176
+ Store 186(param) 180
+ Store 187(param) 182
+ Store 188(param) 185
+ 189: 16(fvec2) FunctionCall 22(fbSelect(vb2;vf2;vf2;) 186(param) 187(param) 188(param)
+ 191: 6(float) CompositeExtract 189 0
+ 192: 6(float) CompositeExtract 189 1
+ 193: 7(fvec4) CompositeConstruct 191 192 190 190
+ 194: 7(fvec4) FAdd 177 193
+ ReturnValue 194
FunctionEnd
diff --git a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out
index af8708e..a08f3e3 100644
--- a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out
+++ b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out
@@ -14,7 +14,7 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
// 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 @@
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 @@
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 @@
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
diff --git a/Test/baseResults/hlsl.implicitBool.frag.out b/Test/baseResults/hlsl.implicitBool.frag.out
index 658ea2e..3e90fdb 100755
--- a/Test/baseResults/hlsl.implicitBool.frag.out
+++ b/Test/baseResults/hlsl.implicitBool.frag.out
@@ -133,7 +133,7 @@
0:28 Sequence
0:28 move second child to first child ( temp float)
0:28 'g' ( temp float)
-0:28 Test condition and select ( temp float)
+0:28 Test condition and select ( temp float): no shortcircuit
0:28 Condition
0:28 Convert float to bool ( temp bool)
0:28 condf: direct index for structure ( uniform float)
@@ -302,7 +302,7 @@
0:28 Sequence
0:28 move second child to first child ( temp float)
0:28 'g' ( temp float)
-0:28 Test condition and select ( temp float)
+0:28 Test condition and select ( temp float): no shortcircuit
0:28 Condition
0:28 Convert float to bool ( temp bool)
0:28 condf: direct index for structure ( uniform float)
diff --git a/Test/baseResults/hlsl.intrinsics.lit.frag.out b/Test/baseResults/hlsl.intrinsics.lit.frag.out
index 14c6448..78f9ac4 100644
--- a/Test/baseResults/hlsl.intrinsics.lit.frag.out
+++ b/Test/baseResults/hlsl.intrinsics.lit.frag.out
@@ -18,7 +18,7 @@
0:3 'n_dot_l' ( in float)
0:3 Constant:
0:3 0.000000
-0:3 Test condition and select ( temp float)
+0:3 Test condition and select ( temp float): no shortcircuit
0:3 Condition
0:3 Compare Less Than ( temp bool)
0:3 min ( temp float)
@@ -79,7 +79,7 @@
0:3 'n_dot_l' ( in float)
0:3 Constant:
0:3 0.000000
-0:3 Test condition and select ( temp float)
+0:3 Test condition and select ( temp float): no shortcircuit
0:3 Condition
0:3 Compare Less Than ( temp bool)
0:3 min ( temp float)
@@ -119,12 +119,12 @@
// Module Version 10000
// Generated by (magic number): 80004
-// Id's are bound by 52
+// Id's are bound by 48
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint Fragment 4 "PixelShaderFunction" 37 40 43
+ EntryPoint Fragment 4 "PixelShaderFunction" 33 36 39
ExecutionMode 4 OriginUpperLeft
Source HLSL 500
Name 4 "PixelShaderFunction"
@@ -133,18 +133,18 @@
Name 10 "n_dot_h"
Name 11 "m"
Name 16 "r0"
- Name 35 "n_dot_l"
- Name 37 "n_dot_l"
- Name 39 "n_dot_h"
- Name 40 "n_dot_h"
- Name 42 "m"
- Name 43 "m"
+ Name 31 "n_dot_l"
+ Name 33 "n_dot_l"
+ Name 35 "n_dot_h"
+ Name 36 "n_dot_h"
+ Name 38 "m"
+ Name 39 "m"
+ Name 41 "param"
+ Name 43 "param"
Name 45 "param"
- Name 47 "param"
- Name 49 "param"
- Decorate 37(n_dot_l) Location 0
- Decorate 40(n_dot_h) Location 1
- Decorate 43(m) Location 2
+ Decorate 33(n_dot_l) Location 0
+ Decorate 36(n_dot_h) Location 1
+ Decorate 39(m) Location 2
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -154,32 +154,32 @@
15: TypePointer Function 14(fvec4)
17: 6(float) Constant 1065353216
19: 6(float) Constant 0
- 25: TypeBool
- 36: TypePointer Input 6(float)
- 37(n_dot_l): 36(ptr) Variable Input
- 40(n_dot_h): 36(ptr) Variable Input
- 43(m): 36(ptr) Variable Input
+ 24: TypeBool
+ 32: TypePointer Input 6(float)
+ 33(n_dot_l): 32(ptr) Variable Input
+ 36(n_dot_h): 32(ptr) Variable Input
+ 39(m): 32(ptr) Variable Input
4(PixelShaderFunction): 2 Function None 3
5: Label
- 35(n_dot_l): 7(ptr) Variable Function
- 39(n_dot_h): 7(ptr) Variable Function
- 42(m): 7(ptr) Variable Function
+ 31(n_dot_l): 7(ptr) Variable Function
+ 35(n_dot_h): 7(ptr) Variable Function
+ 38(m): 7(ptr) Variable Function
+ 41(param): 7(ptr) Variable Function
+ 43(param): 7(ptr) Variable Function
45(param): 7(ptr) Variable Function
- 47(param): 7(ptr) Variable Function
- 49(param): 7(ptr) Variable Function
- 38: 6(float) Load 37(n_dot_l)
- Store 35(n_dot_l) 38
- 41: 6(float) Load 40(n_dot_h)
- Store 39(n_dot_h) 41
- 44: 6(float) Load 43(m)
- Store 42(m) 44
- 46: 6(float) Load 35(n_dot_l)
+ 34: 6(float) Load 33(n_dot_l)
+ Store 31(n_dot_l) 34
+ 37: 6(float) Load 36(n_dot_h)
+ Store 35(n_dot_h) 37
+ 40: 6(float) Load 39(m)
+ Store 38(m) 40
+ 42: 6(float) Load 31(n_dot_l)
+ Store 41(param) 42
+ 44: 6(float) Load 35(n_dot_h)
+ Store 43(param) 44
+ 46: 6(float) Load 38(m)
Store 45(param) 46
- 48: 6(float) Load 39(n_dot_h)
- Store 47(param) 48
- 50: 6(float) Load 42(m)
- Store 49(param) 50
- 51: 2 FunctionCall 12(@PixelShaderFunction(f1;f1;f1;) 45(param) 47(param) 49(param)
+ 47: 2 FunctionCall 12(@PixelShaderFunction(f1;f1;f1;) 41(param) 43(param) 45(param)
Return
FunctionEnd
12(@PixelShaderFunction(f1;f1;f1;): 2 Function None 8
@@ -188,27 +188,17 @@
11(m): 7(ptr) FunctionParameter
13: Label
16(r0): 15(ptr) Variable Function
- 21: 7(ptr) Variable Function
18: 6(float) Load 9(n_dot_l)
20: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 18 19
- 22: 6(float) Load 9(n_dot_l)
- 23: 6(float) Load 10(n_dot_h)
- 24: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 22 23
- 26: 25(bool) FOrdLessThan 24 19
- SelectionMerge 28 None
- BranchConditional 26 27 29
- 27: Label
- Store 21 19
- Branch 28
- 29: Label
- 30: 6(float) Load 10(n_dot_h)
- 31: 6(float) Load 11(m)
- 32: 6(float) FMul 30 31
- Store 21 32
- Branch 28
- 28: Label
- 33: 6(float) Load 21
- 34: 14(fvec4) CompositeConstruct 17 20 33 17
- Store 16(r0) 34
+ 21: 6(float) Load 9(n_dot_l)
+ 22: 6(float) Load 10(n_dot_h)
+ 23: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 21 22
+ 25: 24(bool) FOrdLessThan 23 19
+ 26: 6(float) Load 10(n_dot_h)
+ 27: 6(float) Load 11(m)
+ 28: 6(float) FMul 26 27
+ 29: 6(float) Select 25 19 28
+ 30: 14(fvec4) CompositeConstruct 17 20 29 17
+ Store 16(r0) 30
Return
FunctionEnd
diff --git a/Test/baseResults/hlsl.type.identifier.frag.out b/Test/baseResults/hlsl.type.identifier.frag.out
index 80a1b28..4bd2a9b 100644
--- a/Test/baseResults/hlsl.type.identifier.frag.out
+++ b/Test/baseResults/hlsl.type.identifier.frag.out
@@ -86,7 +86,7 @@
0:25 'uint' ( temp mediump uint)
0:25 'min16float' ( temp mediump float)
0:25 'min10float' ( temp mediump float)
-0:25 Test condition and select ( temp mediump float)
+0:25 Test condition and select ( temp mediump float): no shortcircuit
0:25 Condition
0:25 direct index ( temp bool)
0:25 'bool' ( temp 2-element array of bool)
@@ -221,7 +221,7 @@
0:25 'uint' ( temp mediump uint)
0:25 'min16float' ( temp mediump float)
0:25 'min10float' ( temp mediump float)
-0:25 Test condition and select ( temp mediump float)
+0:25 Test condition and select ( temp mediump float): no shortcircuit
0:25 Condition
0:25 direct index ( temp bool)
0:25 'bool' ( temp 2-element array of bool)
@@ -267,12 +267,12 @@
// Module Version 10000
// Generated by (magic number): 80004
-// Id's are bound by 109
+// Id's are bound by 105
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
- EntryPoint Fragment 4 "main" 107
+ EntryPoint Fragment 4 "main" 103
ExecutionMode 4 OriginUpperLeft
Source HLSL 500
Name 4 "main"
@@ -289,9 +289,9 @@
Name 56 "foo_t"
MemberName 56(foo_t) 0 "float"
Name 58 "float"
- Name 86 "param"
- Name 93 "half2x3"
- Name 107 "@entryPointOutput"
+ Name 82 "param"
+ Name 89 "half2x3"
+ Name 103 "@entryPointOutput"
Decorate 49(min16float) RelaxedPrecision
Decorate 50 RelaxedPrecision
Decorate 51 RelaxedPrecision
@@ -308,15 +308,14 @@
Decorate 72 RelaxedPrecision
Decorate 73 RelaxedPrecision
Decorate 74 RelaxedPrecision
- Decorate 80 RelaxedPrecision
+ Decorate 77 RelaxedPrecision
+ Decorate 78 RelaxedPrecision
+ Decorate 79 RelaxedPrecision
Decorate 81 RelaxedPrecision
Decorate 83 RelaxedPrecision
Decorate 84 RelaxedPrecision
Decorate 85 RelaxedPrecision
- Decorate 87 RelaxedPrecision
- Decorate 88 RelaxedPrecision
- Decorate 89 RelaxedPrecision
- Decorate 107(@entryPointOutput) Location 0
+ Decorate 103(@entryPointOutput) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -341,16 +340,16 @@
56(foo_t): TypeStruct 6(float)
57: TypePointer Function 56(foo_t)
59: 6(float) Constant 1109917696
- 90: TypeVector 6(float) 3
- 91: TypeMatrix 90(fvec3) 2
- 92: TypePointer Function 91
- 97: 22(int) Constant 0
- 106: TypePointer Output 12(fvec4)
-107(@entryPointOutput): 106(ptr) Variable Output
+ 86: TypeVector 6(float) 3
+ 87: TypeMatrix 86(fvec3) 2
+ 88: TypePointer Function 87
+ 93: 22(int) Constant 0
+ 102: TypePointer Output 12(fvec4)
+103(@entryPointOutput): 102(ptr) Variable Output
4(main): 2 Function None 3
5: Label
- 108: 12(fvec4) FunctionCall 14(@main()
- Store 107(@entryPointOutput) 108
+ 104: 12(fvec4) FunctionCall 14(@main()
+ Store 103(@entryPointOutput) 104
Return
FunctionEnd
10(fn(f1;): 6(float) Function None 8
@@ -369,9 +368,8 @@
52(min10float): 7(ptr) Variable Function
54(half): 7(ptr) Variable Function
58(float): 57(ptr) Variable Function
- 75: 7(ptr) Variable Function
- 86(param): 7(ptr) Variable Function
- 93(half2x3): 92(ptr) Variable Function
+ 82(param): 7(ptr) Variable Function
+ 89(half2x3): 88(ptr) Variable Function
Store 19(float) 20
27: 6(float) Load 19(float)
29: 21(bool) FOrdNotEqual 27 28
@@ -412,36 +410,27 @@
72: 6(float) FAdd 70 71
73: 6(float) Load 52(min10float)
74: 6(float) FAdd 72 73
- 76: 37(ptr) AccessChain 26(bool) 40
- 77: 21(bool) Load 76
- SelectionMerge 79 None
- BranchConditional 77 78 82
- 78: Label
- 80: 33(int) Load 35(int)
- 81: 6(float) ConvertSToF 80
- Store 75 81
- Branch 79
- 82: Label
- 83: 6(float) Load 19(float)
- Store 75 83
- Branch 79
- 79: Label
- 84: 6(float) Load 75
- 85: 6(float) FAdd 74 84
- 87: 6(float) Load 19(float)
- Store 86(param) 87
- 88: 6(float) FunctionCall 10(fn(f1;) 86(param)
- 89: 6(float) FAdd 85 88
- Store 19(float) 89
- 94: 6(float) Load 19(float)
+ 75: 37(ptr) AccessChain 26(bool) 40
+ 76: 21(bool) Load 75
+ 77: 33(int) Load 35(int)
+ 78: 6(float) ConvertSToF 77
+ 79: 6(float) Load 19(float)
+ 80: 6(float) Select 76 78 79
+ 81: 6(float) FAdd 74 80
+ 83: 6(float) Load 19(float)
+ Store 82(param) 83
+ 84: 6(float) FunctionCall 10(fn(f1;) 82(param)
+ 85: 6(float) FAdd 81 84
+ Store 19(float) 85
+ 90: 6(float) Load 19(float)
+ 91: 6(float) Load 19(float)
+ 92: 6(float) FMul 90 91
+ 94: 7(ptr) AccessChain 89(half2x3) 40 93
+ Store 94 92
95: 6(float) Load 19(float)
- 96: 6(float) FMul 94 95
- 98: 7(ptr) AccessChain 93(half2x3) 40 97
- Store 98 96
- 99: 6(float) Load 19(float)
- 100: 7(ptr) AccessChain 93(half2x3) 40 97
- 101: 6(float) Load 100
- 102: 6(float) FAdd 99 101
- 103: 12(fvec4) CompositeConstruct 102 102 102 102
- ReturnValue 103
+ 96: 7(ptr) AccessChain 89(half2x3) 40 93
+ 97: 6(float) Load 96
+ 98: 6(float) FAdd 95 97
+ 99: 12(fvec4) CompositeConstruct 98 98 98 98
+ ReturnValue 99
FunctionEnd
diff --git a/Test/baseResults/spv.400.frag.out b/Test/baseResults/spv.400.frag.out
index fcae117..8ea83fc 100644
--- a/Test/baseResults/spv.400.frag.out
+++ b/Test/baseResults/spv.400.frag.out
@@ -273,10 +273,10 @@
439(bvec2v): 438(ptr) Variable Function
448(bvec3v): 447(ptr) Variable Function
457(bvec4v): 456(ptr) Variable Function
- 556: 429(ptr) Variable Function
- 565: 438(ptr) Variable Function
- 574: 447(ptr) Variable Function
- 583: 456(ptr) Variable Function
+ 557: 429(ptr) Variable Function
+ 566: 438(ptr) Variable Function
+ 575: 447(ptr) Variable Function
+ 584: 456(ptr) Variable Function
739(dmat2v): 738(ptr) Variable Function
745(dmat3v): 744(ptr) Variable Function
751(dmat4v): 750(ptr) Variable Function
@@ -875,61 +875,61 @@
554: 53(fvec4) Load 55(dvec4v)
555: 455(bvec4) IsNan 554
Store 457(bvec4v) 555
- 557: 428(bool) Load 430(boolv)
+ 556: 428(bool) Load 430(boolv)
SelectionMerge 559 None
- BranchConditional 557 558 562
+ BranchConditional 556 558 562
558: Label
560: 39(float) Load 41(doublev)
561: 428(bool) IsInf 560
- Store 556 561
+ Store 557 561
Branch 559
562: Label
- Store 556 563
+ Store 557 563
Branch 559
559: Label
- 564: 428(bool) Load 556
+ 564: 428(bool) Load 557
Store 430(boolv) 564
- 566: 428(bool) Load 430(boolv)
+ 565: 428(bool) Load 430(boolv)
SelectionMerge 568 None
- BranchConditional 566 567 571
+ BranchConditional 565 567 571
567: Label
569: 43(fvec2) Load 45(dvec2v)
570: 437(bvec2) IsInf 569
- Store 565 570
+ Store 566 570
Branch 568
571: Label
- Store 565 572
+ Store 566 572
Branch 568
568: Label
- 573: 437(bvec2) Load 565
+ 573: 437(bvec2) Load 566
Store 439(bvec2v) 573
- 575: 428(bool) Load 430(boolv)
+ 574: 428(bool) Load 430(boolv)
SelectionMerge 577 None
- BranchConditional 575 576 580
+ BranchConditional 574 576 580
576: Label
578: 48(fvec3) Load 50(dvec3v)
579: 446(bvec3) IsInf 578
- Store 574 579
+ Store 575 579
Branch 577
580: Label
- Store 574 581
+ Store 575 581
Branch 577
577: Label
- 582: 446(bvec3) Load 574
+ 582: 446(bvec3) Load 575
Store 448(bvec3v) 582
- 584: 428(bool) Load 430(boolv)
+ 583: 428(bool) Load 430(boolv)
SelectionMerge 586 None
- BranchConditional 584 585 589
+ BranchConditional 583 585 589
585: Label
587: 53(fvec4) Load 55(dvec4v)
588: 455(bvec4) IsInf 587
- Store 583 588
+ Store 584 588
Branch 586
589: Label
- Store 583 590
+ Store 584 590
Branch 586
586: Label
- 591: 455(bvec4) Load 583
+ 591: 455(bvec4) Load 584
Store 457(bvec4v) 591
592: 39(float) Load 41(doublev)
593: 39(float) ExtInst 1(GLSL.std.450) 66(Length) 592
diff --git a/Test/baseResults/spv.Operations.frag.out b/Test/baseResults/spv.Operations.frag.out
index 64cd07e..74a165d 100755
--- a/Test/baseResults/spv.Operations.frag.out
+++ b/Test/baseResults/spv.Operations.frag.out
@@ -90,10 +90,10 @@
188(f): 143(ptr) Variable Function
285(u): 284(ptr) Variable Function
305(b): 304(ptr) Variable Function
- 486: 8(ptr) Variable Function
+ 487: 8(ptr) Variable Function
503(m1): 502(ptr) Variable Function
510(m2): 502(ptr) Variable Function
- 513: 502(ptr) Variable Function
+ 514: 502(ptr) Variable Function
12: 7(fvec4) Load 11(uv4)
13: 7(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 12
Store 9(v) 13
@@ -658,9 +658,9 @@
482: 178(bool) Load 305(b)
483: 178(bool) LogicalNot 482
Store 305(b) 483
- 487: 178(bool) Load 305(b)
+ 486: 178(bool) Load 305(b)
SelectionMerge 489 None
- BranchConditional 487 488 498
+ BranchConditional 486 488 498
488: Label
490: 18(int) Load 20(i)
491: 6(float) ConvertSToF 490
@@ -670,30 +670,30 @@
495: 7(fvec4) FAdd 492 494
496: 7(fvec4) Load 9(v)
497: 7(fvec4) FAdd 495 496
- Store 486 497
+ Store 487 497
Branch 489
498: Label
499: 7(fvec4) Load 9(v)
- Store 486 499
+ Store 487 499
Branch 489
489: Label
- 500: 7(fvec4) Load 486
+ 500: 7(fvec4) Load 487
Store 485(FragColor) 500
Store 503(m1) 509
Store 510(m2) 512
- 514: 178(bool) Load 305(b)
+ 513: 178(bool) Load 305(b)
SelectionMerge 516 None
- BranchConditional 514 515 518
+ BranchConditional 513 515 518
515: Label
517: 501 Load 503(m1)
- Store 513 517
+ Store 514 517
Branch 516
518: Label
519: 501 Load 510(m2)
- Store 513 519
+ Store 514 519
Branch 516
516: Label
- 520: 8(ptr) AccessChain 513 405
+ 520: 8(ptr) AccessChain 514 405
521: 7(fvec4) Load 520
522: 7(fvec4) Load 485(FragColor)
523: 7(fvec4) FAdd 522 521
diff --git a/Test/baseResults/spv.bitCast.frag.out b/Test/baseResults/spv.bitCast.frag.out
index dcd15e4..58deb0a 100644
--- a/Test/baseResults/spv.bitCast.frag.out
+++ b/Test/baseResults/spv.bitCast.frag.out
@@ -86,8 +86,8 @@
148(u4): 147(ptr) Variable Input
153: TypePointer Output 46(fvec4)
154(fragColor): 153(ptr) Variable Output
- 159: TypeBool
- 160: TypeVector 159(bool) 4
+ 158: TypeBool
+ 159: TypeVector 158(bool) 4
168: 12(float) Constant 1045220557
169: 46(fvec4) ConstantComposite 168 168 168 168
4(main): 2 Function None 3
@@ -95,7 +95,7 @@
9(idata): 8(ptr) Variable Function
55(udata): 54(ptr) Variable Function
85(fdata): 84(ptr) Variable Function
- 155: 84(ptr) Variable Function
+ 162: 84(ptr) Variable Function
Store 9(idata) 11
15: 12(float) Load 14(f1)
16: 6(int) Bitcast 15
@@ -211,24 +211,24 @@
151: 46(fvec4) Load 85(fdata)
152: 46(fvec4) FAdd 151 150
Store 85(fdata) 152
- 156: 7(ivec4) Load 9(idata)
- 157: 53(ivec4) Bitcast 156
- 158: 53(ivec4) Load 55(udata)
- 161: 160(bvec4) IEqual 157 158
- 162: 159(bool) All 161
+ 155: 7(ivec4) Load 9(idata)
+ 156: 53(ivec4) Bitcast 155
+ 157: 53(ivec4) Load 55(udata)
+ 160: 159(bvec4) IEqual 156 157
+ 161: 158(bool) All 160
SelectionMerge 164 None
- BranchConditional 162 163 166
+ BranchConditional 161 163 166
163: Label
165: 46(fvec4) Load 85(fdata)
- Store 155 165
+ Store 162 165
Branch 164
166: Label
167: 46(fvec4) Load 85(fdata)
170: 46(fvec4) FAdd 167 169
- Store 155 170
+ Store 162 170
Branch 164
164: Label
- 171: 46(fvec4) Load 155
+ 171: 46(fvec4) Load 162
Store 154(fragColor) 171
Return
FunctionEnd
diff --git a/Test/baseResults/spv.conversion.frag.out b/Test/baseResults/spv.conversion.frag.out
index 5a756b3..c950443 100755
--- a/Test/baseResults/spv.conversion.frag.out
+++ b/Test/baseResults/spv.conversion.frag.out
@@ -119,8 +119,8 @@
315: 13(int) Constant 1
321: TypePointer Output 95(fvec4)
322(gl_FragColor): 321(ptr) Variable Output
- 337: 13(int) Constant 2
- 350: 13(int) Constant 3
+ 336: 13(int) Constant 2
+ 349: 13(int) Constant 3
427: TypePointer Private 6(bool)
428(u_b): 427(ptr) Variable Private
429: TypePointer Private 23(bvec2)
@@ -163,9 +163,9 @@
110(f2): 109(ptr) Variable Function
114(f3): 113(ptr) Variable Function
118(f4): 117(ptr) Variable Function
- 297: 105(ptr) Variable Function
- 307: 105(ptr) Variable Function
- 323: 117(ptr) Variable Function
+ 298: 105(ptr) Variable Function
+ 309: 105(ptr) Variable Function
+ 353: 117(ptr) Variable Function
417(cv2): 93(ptr) Variable Function
418(cv5): 44(ptr) Variable Function
12: 9(int) Load 11(u_i)
@@ -425,72 +425,72 @@
SelectionMerge 296 None
BranchConditional 294 295 296
295: Label
- 298: 6(bool) Load 8(b)
+ 297: 6(bool) Load 8(b)
SelectionMerge 300 None
- BranchConditional 298 299 303
+ BranchConditional 297 299 303
299: Label
301: 9(int) Load 58(i)
302: 16(float) ConvertSToF 301
- Store 297 302
+ Store 298 302
Branch 300
303: Label
304: 105(ptr) AccessChain 110(f2) 14
305: 16(float) Load 304
- Store 297 305
+ Store 298 305
Branch 300
300: Label
- 306: 16(float) Load 297
- 308: 7(ptr) AccessChain 25(b2) 14
- 309: 6(bool) Load 308
+ 306: 16(float) Load 298
+ 307: 7(ptr) AccessChain 25(b2) 14
+ 308: 6(bool) Load 307
SelectionMerge 311 None
- BranchConditional 309 310 314
+ BranchConditional 308 310 314
310: Label
312: 105(ptr) AccessChain 114(f3) 14
313: 16(float) Load 312
- Store 307 313
+ Store 309 313
Branch 311
314: Label
316: 57(ptr) AccessChain 68(i2) 315
317: 9(int) Load 316
318: 16(float) ConvertSToF 317
- Store 307 318
+ Store 309 318
Branch 311
311: Label
- 319: 16(float) Load 307
+ 319: 16(float) Load 309
320: 16(float) FAdd 306 319
Store 106(f) 320
Branch 296
296: Label
- 324: 6(bool) Load 8(b)
- 325: 7(ptr) AccessChain 25(b2) 14
- 326: 6(bool) Load 325
- 327: 6(bool) LogicalOr 324 326
- 328: 7(ptr) AccessChain 25(b2) 315
- 329: 6(bool) Load 328
- 330: 6(bool) LogicalOr 327 329
- 331: 7(ptr) AccessChain 33(b3) 14
- 332: 6(bool) Load 331
- 333: 6(bool) LogicalOr 330 332
- 334: 7(ptr) AccessChain 33(b3) 315
- 335: 6(bool) Load 334
- 336: 6(bool) LogicalOr 333 335
- 338: 7(ptr) AccessChain 33(b3) 337
- 339: 6(bool) Load 338
- 340: 6(bool) LogicalOr 336 339
- 341: 7(ptr) AccessChain 45(b4) 14
- 342: 6(bool) Load 341
- 343: 6(bool) LogicalOr 340 342
- 344: 7(ptr) AccessChain 45(b4) 315
- 345: 6(bool) Load 344
- 346: 6(bool) LogicalOr 343 345
- 347: 7(ptr) AccessChain 45(b4) 337
- 348: 6(bool) Load 347
- 349: 6(bool) LogicalOr 346 348
- 351: 7(ptr) AccessChain 45(b4) 350
- 352: 6(bool) Load 351
- 353: 6(bool) LogicalOr 349 352
+ 323: 6(bool) Load 8(b)
+ 324: 7(ptr) AccessChain 25(b2) 14
+ 325: 6(bool) Load 324
+ 326: 6(bool) LogicalOr 323 325
+ 327: 7(ptr) AccessChain 25(b2) 315
+ 328: 6(bool) Load 327
+ 329: 6(bool) LogicalOr 326 328
+ 330: 7(ptr) AccessChain 33(b3) 14
+ 331: 6(bool) Load 330
+ 332: 6(bool) LogicalOr 329 331
+ 333: 7(ptr) AccessChain 33(b3) 315
+ 334: 6(bool) Load 333
+ 335: 6(bool) LogicalOr 332 334
+ 337: 7(ptr) AccessChain 33(b3) 336
+ 338: 6(bool) Load 337
+ 339: 6(bool) LogicalOr 335 338
+ 340: 7(ptr) AccessChain 45(b4) 14
+ 341: 6(bool) Load 340
+ 342: 6(bool) LogicalOr 339 341
+ 343: 7(ptr) AccessChain 45(b4) 315
+ 344: 6(bool) Load 343
+ 345: 6(bool) LogicalOr 342 344
+ 346: 7(ptr) AccessChain 45(b4) 336
+ 347: 6(bool) Load 346
+ 348: 6(bool) LogicalOr 345 347
+ 350: 7(ptr) AccessChain 45(b4) 349
+ 351: 6(bool) Load 350
+ 352: 6(bool) LogicalOr 348 351
SelectionMerge 355 None
- BranchConditional 353 354 415
+ BranchConditional 352 354 415
354: Label
356: 9(int) Load 58(i)
357: 57(ptr) AccessChain 68(i2) 14
@@ -505,7 +505,7 @@
366: 57(ptr) AccessChain 81(i3) 315
367: 9(int) Load 366
368: 9(int) IAdd 365 367
- 369: 57(ptr) AccessChain 81(i3) 337
+ 369: 57(ptr) AccessChain 81(i3) 336
370: 9(int) Load 369
371: 9(int) IAdd 368 370
372: 57(ptr) AccessChain 94(i4) 14
@@ -514,10 +514,10 @@
375: 57(ptr) AccessChain 94(i4) 315
376: 9(int) Load 375
377: 9(int) IAdd 374 376
- 378: 57(ptr) AccessChain 94(i4) 337
+ 378: 57(ptr) AccessChain 94(i4) 336
379: 9(int) Load 378
380: 9(int) IAdd 377 379
- 381: 57(ptr) AccessChain 94(i4) 350
+ 381: 57(ptr) AccessChain 94(i4) 349
382: 9(int) Load 381
383: 9(int) IAdd 380 382
384: 16(float) ConvertSToF 383
@@ -535,7 +535,7 @@
396: 105(ptr) AccessChain 114(f3) 315
397: 16(float) Load 396
398: 16(float) FAdd 395 397
- 399: 105(ptr) AccessChain 114(f3) 337
+ 399: 105(ptr) AccessChain 114(f3) 336
400: 16(float) Load 399
401: 16(float) FAdd 398 400
402: 105(ptr) AccessChain 118(f4) 14
@@ -544,20 +544,20 @@
405: 105(ptr) AccessChain 118(f4) 315
406: 16(float) Load 405
407: 16(float) FAdd 404 406
- 408: 105(ptr) AccessChain 118(f4) 337
+ 408: 105(ptr) AccessChain 118(f4) 336
409: 16(float) Load 408
410: 16(float) FAdd 407 409
- 411: 105(ptr) AccessChain 118(f4) 350
+ 411: 105(ptr) AccessChain 118(f4) 349
412: 16(float) Load 411
413: 16(float) FAdd 410 412
414: 95(fvec4) CompositeConstruct 413 413 413 413
- Store 323 414
+ Store 353 414
Branch 355
415: Label
- Store 323 151
+ Store 353 151
Branch 355
355: Label
- 416: 95(fvec4) Load 323
+ 416: 95(fvec4) Load 353
Store 322(gl_FragColor) 416
Store 417(cv2) 102
419: 92(ivec4) Load 417(cv2)
diff --git a/Test/baseResults/spv.debugInfo.frag.out b/Test/baseResults/spv.debugInfo.frag.out
index d937398..15dd7cd 100644
--- a/Test/baseResults/spv.debugInfo.frag.out
+++ b/Test/baseResults/spv.debugInfo.frag.out
@@ -135,13 +135,13 @@
77: TypePointer Uniform 7(int)
106: 7(int) Constant 10
111: 7(int) Constant 1
- 114: TypePointer Output 10(float)
- 117: 10(float) Constant 1092616192
+ 113: TypePointer Output 10(float)
+ 116: 10(float) Constant 1092616192
5(main): 3 Function None 4
6: Label
59(param): 58(ptr) Variable Function
99(i): 19(ptr) Variable Function
- 113: 16(ptr) Variable Function
+ 118: 16(ptr) Variable Function
Line 1 30 0
61: 60(ptr) AccessChain 56 18
62: 53(S) Load 61
@@ -216,24 +216,24 @@
Branch 100
102: Label
Line 1 49 0
- 115: 114(ptr) AccessChain 52(outv) 32
- 116: 10(float) Load 115
- 118: 37(bool) FOrdLessThan 116 117
+ 114: 113(ptr) AccessChain 52(outv) 32
+ 115: 10(float) Load 114
+ 117: 37(bool) FOrdLessThan 115 116
SelectionMerge 120 None
- BranchConditional 118 119 123
+ BranchConditional 117 119 123
119: Label
Line 1 50 0
121: 11(fvec4) Load 52(outv)
122: 11(fvec4) ExtInst 2(GLSL.std.450) 13(Sin) 121
Store 52(outv) 122
- Store 113 122
+ Store 118 122
Branch 120
123: Label
Line 1 51 0
124: 11(fvec4) Load 52(outv)
125: 11(fvec4) ExtInst 2(GLSL.std.450) 14(Cos) 124
Store 52(outv) 125
- Store 113 125
+ Store 118 125
Branch 120
120: Label
Return
diff --git a/Test/baseResults/spv.sparseTexture.frag.out b/Test/baseResults/spv.sparseTexture.frag.out
index 6d205ae..1f6d19b 100644
--- a/Test/baseResults/spv.sparseTexture.frag.out
+++ b/Test/baseResults/spv.sparseTexture.frag.out
@@ -182,14 +182,14 @@
414(i2DMS): 413(ptr) Variable UniformConstant
422: TypePointer Output 11(fvec4)
423(outColor): 422(ptr) Variable Output
- 426: TypeBool
+ 425: TypeBool
4(main): 2 Function None 3
5: Label
8(resident): 7(ptr) Variable Function
13(texel): 12(ptr) Variable Function
18(itexel): 17(ptr) Variable Function
23(utexel): 22(ptr) Variable Function
- 424: 12(ptr) Variable Function
+ 427: 12(ptr) Variable Function
Store 8(resident) 9
Store 13(texel) 15
Store 18(itexel) 19
@@ -565,13 +565,13 @@
420: 6(int) Load 8(resident)
421: 6(int) BitwiseOr 420 419
Store 8(resident) 421
- 425: 6(int) Load 8(resident)
- 427: 426(bool) ImageSparseTexelsResident 425
+ 424: 6(int) Load 8(resident)
+ 426: 425(bool) ImageSparseTexelsResident 424
SelectionMerge 429 None
- BranchConditional 427 428 431
+ BranchConditional 426 428 431
428: Label
430: 11(fvec4) Load 13(texel)
- Store 424 430
+ Store 427 430
Branch 429
431: Label
432: 16(ivec4) Load 18(itexel)
@@ -579,10 +579,10 @@
434: 21(ivec4) Load 23(utexel)
435: 11(fvec4) ConvertUToF 434
436: 11(fvec4) FAdd 433 435
- Store 424 436
+ Store 427 436
Branch 429
429: Label
- 437: 11(fvec4) Load 424
+ 437: 11(fvec4) Load 427
Store 423(outColor) 437
Return
FunctionEnd
diff --git a/Test/baseResults/spv.sparseTextureClamp.frag.out b/Test/baseResults/spv.sparseTextureClamp.frag.out
index 2181c0a..acf7f99 100644
--- a/Test/baseResults/spv.sparseTextureClamp.frag.out
+++ b/Test/baseResults/spv.sparseTextureClamp.frag.out
@@ -145,14 +145,14 @@
310: 157(ivec2) ConstantComposite 143 143
344: TypePointer Output 11(fvec4)
345(outColor): 344(ptr) Variable Output
- 348: TypeBool
+ 347: TypeBool
4(main): 2 Function None 3
5: Label
8(resident): 7(ptr) Variable Function
13(texel): 12(ptr) Variable Function
18(itexel): 17(ptr) Variable Function
23(utexel): 22(ptr) Variable Function
- 346: 12(ptr) Variable Function
+ 349: 12(ptr) Variable Function
Store 8(resident) 9
Store 13(texel) 15
Store 18(itexel) 19
@@ -442,13 +442,13 @@
342: 16(ivec4) Load 18(itexel)
343: 16(ivec4) IAdd 342 341
Store 18(itexel) 343
- 347: 6(int) Load 8(resident)
- 349: 348(bool) ImageSparseTexelsResident 347
+ 346: 6(int) Load 8(resident)
+ 348: 347(bool) ImageSparseTexelsResident 346
SelectionMerge 351 None
- BranchConditional 349 350 353
+ BranchConditional 348 350 353
350: Label
352: 11(fvec4) Load 13(texel)
- Store 346 352
+ Store 349 352
Branch 351
353: Label
354: 16(ivec4) Load 18(itexel)
@@ -456,10 +456,10 @@
356: 21(ivec4) Load 23(utexel)
357: 11(fvec4) ConvertUToF 356
358: 11(fvec4) FAdd 355 357
- Store 346 358
+ Store 349 358
Branch 351
351: Label
- 359: 11(fvec4) Load 346
+ 359: 11(fvec4) Load 349
Store 345(outColor) 359
Return
FunctionEnd
diff --git a/Test/baseResults/spv.types.frag.out b/Test/baseResults/spv.types.frag.out
index f749ea7..8ae9bf0 100755
--- a/Test/baseResults/spv.types.frag.out
+++ b/Test/baseResults/spv.types.frag.out
@@ -141,7 +141,7 @@
139(f2): 138(ptr) Variable Function
148(f3): 147(ptr) Variable Function
157(f4): 156(ptr) Variable Function
- 166: 156(ptr) Variable Function
+ 194: 156(ptr) Variable Function
11: 6(bool) Load 10(u_b)
13: 6(bool) Load 12(i_b)
14: 6(bool) LogicalAnd 11 13
@@ -235,36 +235,36 @@
162: 155(fvec4) Load 161(i_f4)
163: 155(fvec4) FAdd 160 162
Store 157(f4) 163
- 167: 6(bool) Load 8(b)
- 168: 7(ptr) AccessChain 17(b2) 21
- 169: 6(bool) Load 168
- 170: 6(bool) LogicalOr 167 169
- 171: 7(ptr) AccessChain 17(b2) 28
- 172: 6(bool) Load 171
- 173: 6(bool) LogicalOr 170 172
- 174: 7(ptr) AccessChain 38(b3) 21
- 175: 6(bool) Load 174
- 176: 6(bool) LogicalOr 173 175
- 177: 7(ptr) AccessChain 38(b3) 28
- 178: 6(bool) Load 177
- 179: 6(bool) LogicalOr 176 178
- 180: 7(ptr) AccessChain 38(b3) 53
- 181: 6(bool) Load 180
- 182: 6(bool) LogicalOr 179 181
- 183: 7(ptr) AccessChain 63(b4) 21
- 184: 6(bool) Load 183
- 185: 6(bool) LogicalOr 182 184
- 186: 7(ptr) AccessChain 63(b4) 28
- 187: 6(bool) Load 186
- 188: 6(bool) LogicalOr 185 187
- 189: 7(ptr) AccessChain 63(b4) 53
- 190: 6(bool) Load 189
- 191: 6(bool) LogicalOr 188 190
- 192: 7(ptr) AccessChain 63(b4) 84
- 193: 6(bool) Load 192
- 194: 6(bool) LogicalOr 191 193
+ 166: 6(bool) Load 8(b)
+ 167: 7(ptr) AccessChain 17(b2) 21
+ 168: 6(bool) Load 167
+ 169: 6(bool) LogicalOr 166 168
+ 170: 7(ptr) AccessChain 17(b2) 28
+ 171: 6(bool) Load 170
+ 172: 6(bool) LogicalOr 169 171
+ 173: 7(ptr) AccessChain 38(b3) 21
+ 174: 6(bool) Load 173
+ 175: 6(bool) LogicalOr 172 174
+ 176: 7(ptr) AccessChain 38(b3) 28
+ 177: 6(bool) Load 176
+ 178: 6(bool) LogicalOr 175 177
+ 179: 7(ptr) AccessChain 38(b3) 53
+ 180: 6(bool) Load 179
+ 181: 6(bool) LogicalOr 178 180
+ 182: 7(ptr) AccessChain 63(b4) 21
+ 183: 6(bool) Load 182
+ 184: 6(bool) LogicalOr 181 183
+ 185: 7(ptr) AccessChain 63(b4) 28
+ 186: 6(bool) Load 185
+ 187: 6(bool) LogicalOr 184 186
+ 188: 7(ptr) AccessChain 63(b4) 53
+ 189: 6(bool) Load 188
+ 190: 6(bool) LogicalOr 187 189
+ 191: 7(ptr) AccessChain 63(b4) 84
+ 192: 6(bool) Load 191
+ 193: 6(bool) LogicalOr 190 192
SelectionMerge 196 None
- BranchConditional 194 195 256
+ BranchConditional 193 195 256
195: Label
197: 92(int) Load 94(i)
198: 93(ptr) AccessChain 103(i2) 21
@@ -325,13 +325,13 @@
253: 128(float) Load 252
254: 128(float) FAdd 251 253
255: 155(fvec4) CompositeConstruct 254 254 254 254
- Store 166 255
+ Store 194 255
Branch 196
256: Label
- Store 166 258
+ Store 194 258
Branch 196
196: Label
- 259: 155(fvec4) Load 166
+ 259: 155(fvec4) Load 194
Store 165(gl_FragColor) 259
Return
FunctionEnd