glslang/Test/baseResults/spv.specConstantComposite.vert.out
qining 27e04a004d Fix spec const construtor for matrix and vector
Fix issue: #237

1. The code generated for matrix constructor should 1) build column
vectors first, 2) build matrix with the vectors.

2. When there is only one scalar type constituent in vector's
constructor, we should populate the constituent to fill all the slots in
the vector. As for matrix, the single constituent should be populated to
the diagonal positions (top-left to bottom-right diagonal).

remove createSpvConstantFromConstSubTree()
2016-04-14 17:52:57 -04:00

186 lines
9.1 KiB
Plaintext

spv.specConstantComposite.vert
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 119
Capability Shader
Capability Float64
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 27 118
Source GLSL 450
Name 4 "main"
Name 6 "refer_primary_spec_const("
Name 8 "refer_composite_spec_const("
Name 10 "refer_copmosite_dot_dereference("
Name 12 "refer_composite_bracket_dereference("
Name 16 "refer_spec_const_array_length("
Name 18 "declare_spec_const_in_func("
Name 27 "color"
Name 42 "flat_struct"
MemberName 42(flat_struct) 0 "i"
MemberName 42(flat_struct) 1 "f"
MemberName 42(flat_struct) 2 "d"
MemberName 42(flat_struct) 3 "b"
Name 44 "nesting_struct"
MemberName 44(nesting_struct) 0 "nested"
MemberName 44(nesting_struct) 1 "v"
MemberName 44(nesting_struct) 2 "i"
Name 72 "indexable"
Name 76 "indexable"
Name 83 "len"
Name 118 "global_vec4_array_with_spec_length"
Decorate 21 SpecId 203
Decorate 28 SpecId 200
Decorate 32 SpecId 201
Decorate 41 SpecId 202
2: TypeVoid
3: TypeFunction 2
14: TypeInt 32 1
15: TypeFunction 14(int)
20: TypeBool
21: 20(bool) SpecConstantTrue
24: TypeFloat 32
25: TypeVector 24(float) 4
26: TypePointer Output 25(fvec4)
27(color): 26(ptr) Variable Output
28: 14(int) SpecConstant 3
32: 24(float) SpecConstant 1078523331
33: 25(fvec4) SpecConstantComposite 32 32 32 32
36: 24(float) Constant 1133908460
37: 25(fvec4) SpecConstantComposite 32 32 36 36
40: TypeFloat 64
41: 40(float) SpecConstant 1413754136 1074340347
42(flat_struct): TypeStruct 14(int) 24(float) 40(float) 20(bool)
43:42(flat_struct) SpecConstantComposite 28 32 41 21
44(nesting_struct): TypeStruct 42(flat_struct) 25(fvec4) 14(int)
45:44(nesting_struct) SpecConstantComposite 43 33 28
46: 14(int) Constant 2
51: TypeInt 32 0
52: 51(int) Constant 0
57: 24(float) Constant 1065353216
58: 24(float) Constant 1073741824
59: 24(float) Constant 1077936128
60: 51(int) Constant 5
61: TypeArray 24(float) 60
62: 61 SpecConstantComposite 32 32 57 58 59
63: 14(int) Constant 1
68: 14(int) Constant 30
69: TypeArray 14(int) 60
70: 69 SpecConstantComposite 28 28 63 46 68
71: TypePointer Function 69
73: TypePointer Function 14(int)
87: 24(float) Constant 1106321080
88:42(flat_struct) SpecConstantComposite 68 87 41 21
89: 14(int) Constant 10
90:44(nesting_struct) SpecConstantComposite 88 37 89
96: 20(bool) ConstantFalse
97:42(flat_struct) SpecConstantComposite 28 32 41 96
98: 24(float) Constant 1036831949
99: 25(fvec4) ConstantComposite 98 98 98 98
100:44(nesting_struct) SpecConstantComposite 97 99 28
101: 25(fvec4) SpecConstantComposite 32 32 32 32
102: 24(float) Constant 1066192077
103: 24(float) Constant 1074580685
104: 24(float) Constant 1079194419
105: TypeVector 24(float) 3
106: TypeMatrix 105(fvec3) 2
107: 24(float) Constant 0
108: 105(fvec3) SpecConstantComposite 32 32 32
109: 105(fvec3) SpecConstantComposite 102 103 104
110: 106 SpecConstantComposite 108 109
111: 105(fvec3) SpecConstantComposite 32 107 107
112: 105(fvec3) SpecConstantComposite 107 32 107
113: 106 SpecConstantComposite 111 112
114: 14(int) Constant 3000
115:44(nesting_struct) SpecConstantComposite 88 37 114
116: TypeArray 25(fvec4) 28
117: TypePointer Input 116
118(global_vec4_array_with_spec_length): 117(ptr) Variable Input
4(main): 2 Function None 3
5: Label
Return
FunctionEnd
6(refer_primary_spec_const(): 2 Function None 3
7: Label
SelectionMerge 23 None
BranchConditional 21 22 23
22: Label
29: 24(float) ConvertSToF 28
30: 25(fvec4) Load 27(color)
31: 25(fvec4) VectorTimesScalar 30 29
Store 27(color) 31
Branch 23
23: Label
Return
FunctionEnd
8(refer_composite_spec_const(): 2 Function None 3
9: Label
34: 25(fvec4) Load 27(color)
35: 25(fvec4) FAdd 34 33
Store 27(color) 35
38: 25(fvec4) Load 27(color)
39: 25(fvec4) FSub 38 37
Store 27(color) 39
Return
FunctionEnd
10(refer_copmosite_dot_dereference(): 2 Function None 3
11: Label
47: 14(int) CompositeExtract 45 2
48: 24(float) ConvertSToF 47
49: 25(fvec4) Load 27(color)
50: 25(fvec4) VectorTimesScalar 49 48
Store 27(color) 50
53: 24(float) CompositeExtract 33 0
54: 25(fvec4) Load 27(color)
55: 25(fvec4) CompositeConstruct 53 53 53 53
56: 25(fvec4) FAdd 54 55
Store 27(color) 56
Return
FunctionEnd
12(refer_composite_bracket_dereference(): 2 Function None 3
13: Label
72(indexable): 71(ptr) Variable Function
76(indexable): 71(ptr) Variable Function
64: 24(float) CompositeExtract 62 1
65: 25(fvec4) Load 27(color)
66: 25(fvec4) CompositeConstruct 64 64 64 64
67: 25(fvec4) FSub 65 66
Store 27(color) 67
Store 72(indexable) 70
74: 73(ptr) AccessChain 72(indexable) 28
75: 14(int) Load 74
Store 76(indexable) 70
77: 73(ptr) AccessChain 76(indexable) 75
78: 14(int) Load 77
79: 24(float) ConvertSToF 78
80: 25(fvec4) Load 27(color)
81: 25(fvec4) CompositeConstruct 79 79 79 79
82: 25(fvec4) FDiv 80 81
Store 27(color) 82
Return
FunctionEnd
16(refer_spec_const_array_length(): 14(int) Function None 15
17: Label
83(len): 73(ptr) Variable Function
Store 83(len) 28
84: 14(int) Load 83(len)
ReturnValue 84
FunctionEnd
18(declare_spec_const_in_func(): 2 Function None 3
19: Label
91: 14(int) CompositeExtract 90 2
92: 24(float) ConvertSToF 91
93: 25(fvec4) Load 27(color)
94: 25(fvec4) CompositeConstruct 92 92 92 92
95: 25(fvec4) FDiv 93 94
Store 27(color) 95
Return
FunctionEnd