Fix #809: smear scalar condition in OpSelect for selecting vector operands.

This commit is contained in:
John Kessenich
2017-03-30 10:09:28 -06:00
parent 4dc835c369
commit e434ad923e
6 changed files with 72 additions and 56 deletions

View File

@@ -3,7 +3,7 @@ Warning, version 450 is not yet complete; most version-specific features are pre
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 44
// Id's are bound by 46
Capability Shader
1: ExtInstImport "GLSL.std.450"
@@ -56,7 +56,8 @@ Warning, version 450 is not yet complete; most version-specific features are pre
38: 18(fvec4) ConstantComposite 37 37 37 37
39: 17(float) Constant 1065353216
40: 18(fvec4) ConstantComposite 39 39 39 39
42: TypePointer Output 18(fvec4)
41: TypeVector 6(bool) 4
44: TypePointer Output 18(fvec4)
4(main): 2 Function None 3
5: Label
30(param): 7(ptr) Variable Function
@@ -65,9 +66,10 @@ Warning, version 450 is not yet complete; most version-specific features are pre
35: 6(bool) INotEqual 33 34
Store 30(param) 35
36: 6(bool) FunctionCall 10(foo(b1;) 30(param)
41: 18(fvec4) Select 36 38 40
43: 42(ptr) AccessChain 24 26
Store 43 41
42: 41(bvec4) CompositeConstruct 36 36 36 36
43: 18(fvec4) Select 42 38 40
45: 44(ptr) AccessChain 24 26
Store 45 43
Return
FunctionEnd
10(foo(b1;): 6(bool) Function None 8