1 hlsl.implicitBool.frag 2 Shader version: 500 3 gl_FragCoord origin is upper left 4 0:? Sequence 5 0:7 Function Definition: @main( ( temp 4-component vector of float) 6 0:7 Function Parameters: 7 0:? Sequence 8 0:8 Sequence 9 0:8 move second child to first child ( temp 4-component vector of float) 10 0:8 'a' ( temp 4-component vector of float) 11 0:? Constant: 12 0:? 2.000000 13 0:? 2.000000 14 0:? 2.000000 15 0:? 2.000000 16 0:9 Test condition and select ( temp void) 17 0:9 Condition 18 0:9 Convert int to bool ( temp bool) 19 0:9 condi: direct index for structure ( uniform int) 20 0:9 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 21 0:9 Constant: 22 0:9 1 (const uint) 23 0:9 true case 24 0:10 Branch: Return with expression 25 0:10 add ( temp 4-component vector of float) 26 0:10 'a' ( temp 4-component vector of float) 27 0:10 Constant: 28 0:10 1.000000 29 0:11 Test condition and select ( temp void) 30 0:11 Condition 31 0:11 Convert float to bool ( temp bool) 32 0:11 condf: direct index for structure ( uniform float) 33 0:11 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 34 0:11 Constant: 35 0:11 0 (const uint) 36 0:11 true case 37 0:12 Branch: Return with expression 38 0:12 add ( temp 4-component vector of float) 39 0:12 'a' ( temp 4-component vector of float) 40 0:12 Constant: 41 0:12 2.000000 42 0:13 Test condition and select ( temp void) 43 0:13 Condition 44 0:13 Convert float to bool ( temp bool) 45 0:13 condf1: direct index for structure ( uniform 1-component vector of float) 46 0:13 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 47 0:13 Constant: 48 0:13 2 (const uint) 49 0:13 true case 50 0:14 Branch: Return with expression 51 0:14 add ( temp 4-component vector of float) 52 0:14 'a' ( temp 4-component vector of float) 53 0:14 Constant: 54 0:14 3.000000 55 0:15 Test condition and select ( temp void) 56 0:15 Condition 57 0:15 Convert int to bool ( temp bool) 58 0:15 condi1: direct index for structure ( uniform 1-component vector of int) 59 0:15 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 60 0:15 Constant: 61 0:15 3 (const uint) 62 0:15 true case 63 0:16 Branch: Return with expression 64 0:16 add ( temp 4-component vector of float) 65 0:16 'a' ( temp 4-component vector of float) 66 0:16 Constant: 67 0:16 4.000000 68 0:17 Test condition and select ( temp void) 69 0:17 Condition 70 0:17 logical-or ( temp bool) 71 0:17 logical-and ( temp bool) 72 0:17 Convert int to bool ( temp bool) 73 0:17 condi: direct index for structure ( uniform int) 74 0:17 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 75 0:17 Constant: 76 0:17 1 (const uint) 77 0:17 Convert float to bool ( temp bool) 78 0:17 condf: direct index for structure ( uniform float) 79 0:17 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 80 0:17 Constant: 81 0:17 0 (const uint) 82 0:17 Convert float to bool ( temp bool) 83 0:17 condf1: direct index for structure ( uniform 1-component vector of float) 84 0:17 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 85 0:17 Constant: 86 0:17 2 (const uint) 87 0:17 true case 88 0:18 Branch: Return with expression 89 0:18 add ( temp 4-component vector of float) 90 0:18 'a' ( temp 4-component vector of float) 91 0:18 Constant: 92 0:18 5.000000 93 0:20 Sequence 94 0:20 move second child to first child ( temp float) 95 0:20 'f' ( temp float) 96 0:20 condf: direct index for structure ( uniform float) 97 0:20 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 98 0:20 Constant: 99 0:20 0 (const uint) 100 0:21 Loop with condition tested first 101 0:21 Loop Condition 102 0:21 Convert float to bool ( temp bool) 103 0:21 'f' ( temp float) 104 0:21 Loop Body 105 0:? Sequence 106 0:21 Pre-Decrement ( temp float) 107 0:21 'f' ( temp float) 108 0:23 Sequence 109 0:23 move second child to first child ( temp int) 110 0:23 'i' ( temp int) 111 0:23 condi: direct index for structure ( uniform int) 112 0:23 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 113 0:23 Constant: 114 0:23 1 (const uint) 115 0:24 Loop with condition not tested first 116 0:24 Loop Condition 117 0:24 Convert int to bool ( temp bool) 118 0:24 'i' ( temp int) 119 0:24 Loop Body 120 0:? Sequence 121 0:24 Pre-Decrement ( temp int) 122 0:24 'i' ( temp int) 123 0:? Sequence 124 0:26 Loop with condition tested first 125 0:26 Loop Condition 126 0:26 Convert int to bool ( temp bool) 127 0:26 'i' ( temp int) 128 0:26 Loop Body 129 0:? Sequence 130 0:26 Pre-Decrement ( temp int) 131 0:26 'i' ( temp int) 132 0:28 Sequence 133 0:28 move second child to first child ( temp float) 134 0:28 'g' ( temp float) 135 0:28 Test condition and select ( temp float): no shortcircuit 136 0:28 Condition 137 0:28 Convert float to bool ( temp bool) 138 0:28 condf: direct index for structure ( uniform float) 139 0:28 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 140 0:28 Constant: 141 0:28 0 (const uint) 142 0:28 true case 143 0:28 Constant: 144 0:28 7.000000 145 0:28 false case 146 0:28 Constant: 147 0:28 8.000000 148 0:29 add second child into first child ( temp 4-component vector of float) 149 0:29 'a' ( temp 4-component vector of float) 150 0:29 'g' ( temp float) 151 0:31 Branch: Return with expression 152 0:31 subtract ( temp 4-component vector of float) 153 0:31 'a' ( temp 4-component vector of float) 154 0:31 Constant: 155 0:31 1.000000 156 0:7 Function Definition: main( ( temp void) 157 0:7 Function Parameters: 158 0:? Sequence 159 0:7 move second child to first child ( temp 4-component vector of float) 160 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 161 0:7 Function Call: @main( ( temp 4-component vector of float) 162 0:? Linker Objects 163 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 164 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 165 166 167 Linked fragment stage: 168 169 170 Shader version: 500 171 gl_FragCoord origin is upper left 172 0:? Sequence 173 0:7 Function Definition: @main( ( temp 4-component vector of float) 174 0:7 Function Parameters: 175 0:? Sequence 176 0:8 Sequence 177 0:8 move second child to first child ( temp 4-component vector of float) 178 0:8 'a' ( temp 4-component vector of float) 179 0:? Constant: 180 0:? 2.000000 181 0:? 2.000000 182 0:? 2.000000 183 0:? 2.000000 184 0:9 Test condition and select ( temp void) 185 0:9 Condition 186 0:9 Convert int to bool ( temp bool) 187 0:9 condi: direct index for structure ( uniform int) 188 0:9 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 189 0:9 Constant: 190 0:9 1 (const uint) 191 0:9 true case 192 0:10 Branch: Return with expression 193 0:10 add ( temp 4-component vector of float) 194 0:10 'a' ( temp 4-component vector of float) 195 0:10 Constant: 196 0:10 1.000000 197 0:11 Test condition and select ( temp void) 198 0:11 Condition 199 0:11 Convert float to bool ( temp bool) 200 0:11 condf: direct index for structure ( uniform float) 201 0:11 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 202 0:11 Constant: 203 0:11 0 (const uint) 204 0:11 true case 205 0:12 Branch: Return with expression 206 0:12 add ( temp 4-component vector of float) 207 0:12 'a' ( temp 4-component vector of float) 208 0:12 Constant: 209 0:12 2.000000 210 0:13 Test condition and select ( temp void) 211 0:13 Condition 212 0:13 Convert float to bool ( temp bool) 213 0:13 condf1: direct index for structure ( uniform 1-component vector of float) 214 0:13 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 215 0:13 Constant: 216 0:13 2 (const uint) 217 0:13 true case 218 0:14 Branch: Return with expression 219 0:14 add ( temp 4-component vector of float) 220 0:14 'a' ( temp 4-component vector of float) 221 0:14 Constant: 222 0:14 3.000000 223 0:15 Test condition and select ( temp void) 224 0:15 Condition 225 0:15 Convert int to bool ( temp bool) 226 0:15 condi1: direct index for structure ( uniform 1-component vector of int) 227 0:15 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 228 0:15 Constant: 229 0:15 3 (const uint) 230 0:15 true case 231 0:16 Branch: Return with expression 232 0:16 add ( temp 4-component vector of float) 233 0:16 'a' ( temp 4-component vector of float) 234 0:16 Constant: 235 0:16 4.000000 236 0:17 Test condition and select ( temp void) 237 0:17 Condition 238 0:17 logical-or ( temp bool) 239 0:17 logical-and ( temp bool) 240 0:17 Convert int to bool ( temp bool) 241 0:17 condi: direct index for structure ( uniform int) 242 0:17 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 243 0:17 Constant: 244 0:17 1 (const uint) 245 0:17 Convert float to bool ( temp bool) 246 0:17 condf: direct index for structure ( uniform float) 247 0:17 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 248 0:17 Constant: 249 0:17 0 (const uint) 250 0:17 Convert float to bool ( temp bool) 251 0:17 condf1: direct index for structure ( uniform 1-component vector of float) 252 0:17 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 253 0:17 Constant: 254 0:17 2 (const uint) 255 0:17 true case 256 0:18 Branch: Return with expression 257 0:18 add ( temp 4-component vector of float) 258 0:18 'a' ( temp 4-component vector of float) 259 0:18 Constant: 260 0:18 5.000000 261 0:20 Sequence 262 0:20 move second child to first child ( temp float) 263 0:20 'f' ( temp float) 264 0:20 condf: direct index for structure ( uniform float) 265 0:20 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 266 0:20 Constant: 267 0:20 0 (const uint) 268 0:21 Loop with condition tested first 269 0:21 Loop Condition 270 0:21 Convert float to bool ( temp bool) 271 0:21 'f' ( temp float) 272 0:21 Loop Body 273 0:? Sequence 274 0:21 Pre-Decrement ( temp float) 275 0:21 'f' ( temp float) 276 0:23 Sequence 277 0:23 move second child to first child ( temp int) 278 0:23 'i' ( temp int) 279 0:23 condi: direct index for structure ( uniform int) 280 0:23 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 281 0:23 Constant: 282 0:23 1 (const uint) 283 0:24 Loop with condition not tested first 284 0:24 Loop Condition 285 0:24 Convert int to bool ( temp bool) 286 0:24 'i' ( temp int) 287 0:24 Loop Body 288 0:? Sequence 289 0:24 Pre-Decrement ( temp int) 290 0:24 'i' ( temp int) 291 0:? Sequence 292 0:26 Loop with condition tested first 293 0:26 Loop Condition 294 0:26 Convert int to bool ( temp bool) 295 0:26 'i' ( temp int) 296 0:26 Loop Body 297 0:? Sequence 298 0:26 Pre-Decrement ( temp int) 299 0:26 'i' ( temp int) 300 0:28 Sequence 301 0:28 move second child to first child ( temp float) 302 0:28 'g' ( temp float) 303 0:28 Test condition and select ( temp float): no shortcircuit 304 0:28 Condition 305 0:28 Convert float to bool ( temp bool) 306 0:28 condf: direct index for structure ( uniform float) 307 0:28 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 308 0:28 Constant: 309 0:28 0 (const uint) 310 0:28 true case 311 0:28 Constant: 312 0:28 7.000000 313 0:28 false case 314 0:28 Constant: 315 0:28 8.000000 316 0:29 add second child into first child ( temp 4-component vector of float) 317 0:29 'a' ( temp 4-component vector of float) 318 0:29 'g' ( temp float) 319 0:31 Branch: Return with expression 320 0:31 subtract ( temp 4-component vector of float) 321 0:31 'a' ( temp 4-component vector of float) 322 0:31 Constant: 323 0:31 1.000000 324 0:7 Function Definition: main( ( temp void) 325 0:7 Function Parameters: 326 0:? Sequence 327 0:7 move second child to first child ( temp 4-component vector of float) 328 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 329 0:7 Function Call: @main( ( temp 4-component vector of float) 330 0:? Linker Objects 331 0:? 'anon@0' (layout( row_major std140) uniform block{ uniform float condf, uniform int condi, uniform 1-component vector of float condf1, uniform 1-component vector of int condi1}) 332 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 333 334 // Module Version 10000 335 // Generated by (magic number): 80007 336 // Id's are bound by 139 337 338 Capability Shader 339 1: ExtInstImport "GLSL.std.450" 340 MemoryModel Logical GLSL450 341 EntryPoint Fragment 4 "main" 137 342 ExecutionMode 4 OriginUpperLeft 343 Source HLSL 500 344 Name 4 "main" 345 Name 9 "@main(" 346 Name 12 "a" 347 Name 16 "$Global" 348 MemberName 16($Global) 0 "condf" 349 MemberName 16($Global) 1 "condi" 350 MemberName 16($Global) 2 "condf1" 351 MemberName 16($Global) 3 "condi1" 352 Name 18 "" 353 Name 87 "f" 354 Name 100 "i" 355 Name 120 "g" 356 Name 137 "@entryPointOutput" 357 MemberDecorate 16($Global) 0 Offset 0 358 MemberDecorate 16($Global) 1 Offset 4 359 MemberDecorate 16($Global) 2 Offset 8 360 MemberDecorate 16($Global) 3 Offset 12 361 Decorate 16($Global) Block 362 Decorate 18 DescriptorSet 0 363 Decorate 18 Binding 0 364 Decorate 137(@entryPointOutput) Location 0 365 2: TypeVoid 366 3: TypeFunction 2 367 6: TypeFloat 32 368 7: TypeVector 6(float) 4 369 8: TypeFunction 7(fvec4) 370 11: TypePointer Function 7(fvec4) 371 13: 6(float) Constant 1073741824 372 14: 7(fvec4) ConstantComposite 13 13 13 13 373 15: TypeInt 32 1 374 16($Global): TypeStruct 6(float) 15(int) 6(float) 15(int) 375 17: TypePointer Uniform 16($Global) 376 18: 17(ptr) Variable Uniform 377 19: 15(int) Constant 1 378 20: TypePointer Uniform 15(int) 379 23: TypeBool 380 24: TypeInt 32 0 381 25: 24(int) Constant 0 382 30: 6(float) Constant 1065353216 383 34: 15(int) Constant 0 384 35: TypePointer Uniform 6(float) 385 38: 6(float) Constant 0 386 46: 15(int) Constant 2 387 53: 6(float) Constant 1077936128 388 57: 15(int) Constant 3 389 64: 6(float) Constant 1082130432 390 82: 6(float) Constant 1084227584 391 86: TypePointer Function 6(float) 392 99: TypePointer Function 15(int) 393 124: 6(float) Constant 1088421888 394 125: 6(float) Constant 1090519040 395 136: TypePointer Output 7(fvec4) 396 137(@entryPointOutput): 136(ptr) Variable Output 397 4(main): 2 Function None 3 398 5: Label 399 138: 7(fvec4) FunctionCall 9(@main() 400 Store 137(@entryPointOutput) 138 401 Return 402 FunctionEnd 403 9(@main(): 7(fvec4) Function None 8 404 10: Label 405 12(a): 11(ptr) Variable Function 406 87(f): 86(ptr) Variable Function 407 100(i): 99(ptr) Variable Function 408 120(g): 86(ptr) Variable Function 409 Store 12(a) 14 410 21: 20(ptr) AccessChain 18 19 411 22: 15(int) Load 21 412 26: 23(bool) INotEqual 22 25 413 SelectionMerge 28 None 414 BranchConditional 26 27 28 415 27: Label 416 29: 7(fvec4) Load 12(a) 417 31: 7(fvec4) CompositeConstruct 30 30 30 30 418 32: 7(fvec4) FAdd 29 31 419 ReturnValue 32 420 28: Label 421 36: 35(ptr) AccessChain 18 34 422 37: 6(float) Load 36 423 39: 23(bool) FOrdNotEqual 37 38 424 SelectionMerge 41 None 425 BranchConditional 39 40 41 426 40: Label 427 42: 7(fvec4) Load 12(a) 428 43: 7(fvec4) CompositeConstruct 13 13 13 13 429 44: 7(fvec4) FAdd 42 43 430 ReturnValue 44 431 41: Label 432 47: 35(ptr) AccessChain 18 46 433 48: 6(float) Load 47 434 49: 23(bool) FOrdNotEqual 48 38 435 SelectionMerge 51 None 436 BranchConditional 49 50 51 437 50: Label 438 52: 7(fvec4) Load 12(a) 439 54: 7(fvec4) CompositeConstruct 53 53 53 53 440 55: 7(fvec4) FAdd 52 54 441 ReturnValue 55 442 51: Label 443 58: 20(ptr) AccessChain 18 57 444 59: 15(int) Load 58 445 60: 23(bool) INotEqual 59 25 446 SelectionMerge 62 None 447 BranchConditional 60 61 62 448 61: Label 449 63: 7(fvec4) Load 12(a) 450 65: 7(fvec4) CompositeConstruct 64 64 64 64 451 66: 7(fvec4) FAdd 63 65 452 ReturnValue 66 453 62: Label 454 68: 20(ptr) AccessChain 18 19 455 69: 15(int) Load 68 456 70: 23(bool) INotEqual 69 25 457 71: 35(ptr) AccessChain 18 34 458 72: 6(float) Load 71 459 73: 23(bool) FOrdNotEqual 72 38 460 74: 23(bool) LogicalAnd 70 73 461 75: 35(ptr) AccessChain 18 46 462 76: 6(float) Load 75 463 77: 23(bool) FOrdNotEqual 76 38 464 78: 23(bool) LogicalOr 74 77 465 SelectionMerge 80 None 466 BranchConditional 78 79 80 467 79: Label 468 81: 7(fvec4) Load 12(a) 469 83: 7(fvec4) CompositeConstruct 82 82 82 82 470 84: 7(fvec4) FAdd 81 83 471 ReturnValue 84 472 80: Label 473 88: 35(ptr) AccessChain 18 34 474 89: 6(float) Load 88 475 Store 87(f) 89 476 Branch 90 477 90: Label 478 LoopMerge 92 93 None 479 Branch 94 480 94: Label 481 95: 6(float) Load 87(f) 482 96: 23(bool) FOrdNotEqual 95 38 483 BranchConditional 96 91 92 484 91: Label 485 97: 6(float) Load 87(f) 486 98: 6(float) FSub 97 30 487 Store 87(f) 98 488 Branch 93 489 93: Label 490 Branch 90 491 92: Label 492 101: 20(ptr) AccessChain 18 19 493 102: 15(int) Load 101 494 Store 100(i) 102 495 Branch 103 496 103: Label 497 LoopMerge 105 106 None 498 Branch 104 499 104: Label 500 107: 15(int) Load 100(i) 501 108: 15(int) ISub 107 19 502 Store 100(i) 108 503 Branch 106 504 106: Label 505 109: 15(int) Load 100(i) 506 110: 23(bool) INotEqual 109 25 507 BranchConditional 110 103 105 508 105: Label 509 Branch 111 510 111: Label 511 LoopMerge 113 114 None 512 Branch 115 513 115: Label 514 116: 15(int) Load 100(i) 515 117: 23(bool) INotEqual 116 25 516 BranchConditional 117 112 113 517 112: Label 518 118: 15(int) Load 100(i) 519 119: 15(int) ISub 118 19 520 Store 100(i) 119 521 Branch 114 522 114: Label 523 Branch 111 524 113: Label 525 121: 35(ptr) AccessChain 18 34 526 122: 6(float) Load 121 527 123: 23(bool) FOrdNotEqual 122 38 528 126: 6(float) Select 123 124 125 529 Store 120(g) 126 530 127: 6(float) Load 120(g) 531 128: 7(fvec4) Load 12(a) 532 129: 7(fvec4) CompositeConstruct 127 127 127 127 533 130: 7(fvec4) FAdd 128 129 534 Store 12(a) 130 535 131: 7(fvec4) Load 12(a) 536 132: 7(fvec4) CompositeConstruct 30 30 30 30 537 133: 7(fvec4) FSub 131 132 538 ReturnValue 133 539 FunctionEnd 540