glslang/Test/baseResults/hlsl.matrixindex.frag.out
John Kessenich d3f1122a44 Whole stack: Fix stale types in the AST linker object nodes, fixing #557.
Rationalizes the entire tracking of the linker object nodes, effecting
GLSL, HLSL, and SPIR-V, to allow tracked objects to be fully edited before
their type snapshot for linker objects.

Should only effect things when the rest of the AST contained no reference to
the symbol, because normal AST nodes were not stale. Also will only effect such
objects when their types were edited.
2016-11-05 10:22:33 -06:00

408 lines
18 KiB
Plaintext

hlsl.matrixindex.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:10 Function Definition: main( (temp structure{temp 4-component vector of float Color})
0:10 Function Parameters:
0:? Sequence
0:22 Sequence
0:22 move second child to first child (temp float)
0:22 'e1_00' (temp float)
0:22 Constant:
0:22 10.000000
0:23 Sequence
0:23 move second child to first child (temp float)
0:23 'e1_01' (temp float)
0:23 Constant:
0:23 11.000000
0:24 Sequence
0:24 move second child to first child (temp float)
0:24 'e1_10' (temp float)
0:24 Constant:
0:24 12.000000
0:25 Sequence
0:25 move second child to first child (temp float)
0:25 'e1_11' (temp float)
0:25 Constant:
0:25 13.000000
0:26 Sequence
0:26 move second child to first child (temp float)
0:26 'e1_20' (temp float)
0:26 Constant:
0:26 14.000000
0:27 Sequence
0:27 move second child to first child (temp float)
0:27 'e1_21' (temp float)
0:27 Constant:
0:27 15.000000
0:29 Sequence
0:29 move second child to first child (temp float)
0:29 'e2_00' (temp float)
0:29 Constant:
0:29 20.000000
0:30 Sequence
0:30 move second child to first child (temp float)
0:30 'e2_01' (temp float)
0:30 Constant:
0:30 21.000000
0:31 Sequence
0:31 move second child to first child (temp float)
0:31 'e2_10' (temp float)
0:31 Constant:
0:31 22.000000
0:32 Sequence
0:32 move second child to first child (temp float)
0:32 'e2_11' (temp float)
0:32 Constant:
0:32 23.000000
0:33 Sequence
0:33 move second child to first child (temp float)
0:33 'e2_20' (temp float)
0:33 Constant:
0:33 24.000000
0:34 Sequence
0:34 move second child to first child (temp float)
0:34 'e2_21' (temp float)
0:34 Constant:
0:34 25.000000
0:39 Sequence
0:39 move second child to first child (temp 2-component vector of float)
0:39 'r0a' (temp 2-component vector of float)
0:39 Constant:
0:39 10.000000
0:39 11.000000
0:40 Sequence
0:40 move second child to first child (temp 2-component vector of float)
0:40 'r1a' (temp 2-component vector of float)
0:40 Constant:
0:40 12.000000
0:40 13.000000
0:41 Sequence
0:41 move second child to first child (temp 2-component vector of float)
0:41 'r2a' (temp 2-component vector of float)
0:41 Constant:
0:41 14.000000
0:41 15.000000
0:43 Sequence
0:43 move second child to first child (temp 2-component vector of float)
0:43 'r0b' (temp 2-component vector of float)
0:43 indirect index (temp 2-component vector of float)
0:43 Constant:
0:43 20.000000
0:43 21.000000
0:43 22.000000
0:43 23.000000
0:43 24.000000
0:43 25.000000
0:43 idx: direct index for structure (layout(offset=0 ) uniform int)
0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um})
0:43 Constant:
0:43 0 (const uint)
0:44 Sequence
0:44 move second child to first child (temp 2-component vector of float)
0:44 'r0c' (temp 2-component vector of float)
0:44 indirect index (layout(offset=16 ) temp 2-component vector of float)
0:44 um: direct index for structure (layout(offset=16 ) uniform 3X2 matrix of float)
0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um})
0:44 Constant:
0:44 1 (const uint)
0:44 idx: direct index for structure (layout(offset=0 ) uniform int)
0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um})
0:44 Constant:
0:44 0 (const uint)
0:47 move second child to first child (temp 4-component vector of float)
0:47 Color: direct index for structure (temp 4-component vector of float)
0:47 'psout' (temp structure{temp 4-component vector of float Color})
0:47 Constant:
0:47 0 (const int)
0:47 Construct vec4 (temp 4-component vector of float)
0:47 'e2_11' (temp float)
0:48 Sequence
0:48 Sequence
0:48 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:48 Color: direct index for structure (temp 4-component vector of float)
0:48 'psout' (temp structure{temp 4-component vector of float Color})
0:48 Constant:
0:48 0 (const int)
0:48 Branch: Return
0:? Linker Objects
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um})
Linked fragment stage:
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:10 Function Definition: main( (temp structure{temp 4-component vector of float Color})
0:10 Function Parameters:
0:? Sequence
0:22 Sequence
0:22 move second child to first child (temp float)
0:22 'e1_00' (temp float)
0:22 Constant:
0:22 10.000000
0:23 Sequence
0:23 move second child to first child (temp float)
0:23 'e1_01' (temp float)
0:23 Constant:
0:23 11.000000
0:24 Sequence
0:24 move second child to first child (temp float)
0:24 'e1_10' (temp float)
0:24 Constant:
0:24 12.000000
0:25 Sequence
0:25 move second child to first child (temp float)
0:25 'e1_11' (temp float)
0:25 Constant:
0:25 13.000000
0:26 Sequence
0:26 move second child to first child (temp float)
0:26 'e1_20' (temp float)
0:26 Constant:
0:26 14.000000
0:27 Sequence
0:27 move second child to first child (temp float)
0:27 'e1_21' (temp float)
0:27 Constant:
0:27 15.000000
0:29 Sequence
0:29 move second child to first child (temp float)
0:29 'e2_00' (temp float)
0:29 Constant:
0:29 20.000000
0:30 Sequence
0:30 move second child to first child (temp float)
0:30 'e2_01' (temp float)
0:30 Constant:
0:30 21.000000
0:31 Sequence
0:31 move second child to first child (temp float)
0:31 'e2_10' (temp float)
0:31 Constant:
0:31 22.000000
0:32 Sequence
0:32 move second child to first child (temp float)
0:32 'e2_11' (temp float)
0:32 Constant:
0:32 23.000000
0:33 Sequence
0:33 move second child to first child (temp float)
0:33 'e2_20' (temp float)
0:33 Constant:
0:33 24.000000
0:34 Sequence
0:34 move second child to first child (temp float)
0:34 'e2_21' (temp float)
0:34 Constant:
0:34 25.000000
0:39 Sequence
0:39 move second child to first child (temp 2-component vector of float)
0:39 'r0a' (temp 2-component vector of float)
0:39 Constant:
0:39 10.000000
0:39 11.000000
0:40 Sequence
0:40 move second child to first child (temp 2-component vector of float)
0:40 'r1a' (temp 2-component vector of float)
0:40 Constant:
0:40 12.000000
0:40 13.000000
0:41 Sequence
0:41 move second child to first child (temp 2-component vector of float)
0:41 'r2a' (temp 2-component vector of float)
0:41 Constant:
0:41 14.000000
0:41 15.000000
0:43 Sequence
0:43 move second child to first child (temp 2-component vector of float)
0:43 'r0b' (temp 2-component vector of float)
0:43 indirect index (temp 2-component vector of float)
0:43 Constant:
0:43 20.000000
0:43 21.000000
0:43 22.000000
0:43 23.000000
0:43 24.000000
0:43 25.000000
0:43 idx: direct index for structure (layout(offset=0 ) uniform int)
0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um})
0:43 Constant:
0:43 0 (const uint)
0:44 Sequence
0:44 move second child to first child (temp 2-component vector of float)
0:44 'r0c' (temp 2-component vector of float)
0:44 indirect index (layout(offset=16 ) temp 2-component vector of float)
0:44 um: direct index for structure (layout(offset=16 ) uniform 3X2 matrix of float)
0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um})
0:44 Constant:
0:44 1 (const uint)
0:44 idx: direct index for structure (layout(offset=0 ) uniform int)
0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um})
0:44 Constant:
0:44 0 (const uint)
0:47 move second child to first child (temp 4-component vector of float)
0:47 Color: direct index for structure (temp 4-component vector of float)
0:47 'psout' (temp structure{temp 4-component vector of float Color})
0:47 Constant:
0:47 0 (const int)
0:47 Construct vec4 (temp 4-component vector of float)
0:47 'e2_11' (temp float)
0:48 Sequence
0:48 Sequence
0:48 move second child to first child (temp 4-component vector of float)
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:48 Color: direct index for structure (temp 4-component vector of float)
0:48 'psout' (temp structure{temp 4-component vector of float Color})
0:48 Constant:
0:48 0 (const int)
0:48 Branch: Return
0:? Linker Objects
0:? 'Color' (layout(location=0 ) out 4-component vector of float)
0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um})
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 78
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 74
ExecutionMode 4 OriginUpperLeft
Name 4 "main"
Name 8 "e1_00"
Name 10 "e1_01"
Name 12 "e1_10"
Name 14 "e1_11"
Name 16 "e1_20"
Name 18 "e1_21"
Name 20 "e2_00"
Name 22 "e2_01"
Name 24 "e2_10"
Name 26 "e2_11"
Name 28 "e2_20"
Name 30 "e2_21"
Name 34 "r0a"
Name 36 "r1a"
Name 38 "r2a"
Name 40 "r0b"
Name 47 "$Global"
MemberName 47($Global) 0 "idx"
MemberName 47($Global) 1 "um"
Name 49 ""
Name 55 "indexable"
Name 58 "r0c"
Name 66 "PS_OUTPUT"
MemberName 66(PS_OUTPUT) 0 "Color"
Name 68 "psout"
Name 74 "Color"
MemberDecorate 47($Global) 0 Offset 0
MemberDecorate 47($Global) 1 RowMajor
MemberDecorate 47($Global) 1 Offset 16
MemberDecorate 47($Global) 1 MatrixStride 16
Decorate 47($Global) Block
Decorate 49 DescriptorSet 0
Decorate 74(Color) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypePointer Function 6(float)
9: 6(float) Constant 1092616192
11: 6(float) Constant 1093664768
13: 6(float) Constant 1094713344
15: 6(float) Constant 1095761920
17: 6(float) Constant 1096810496
19: 6(float) Constant 1097859072
21: 6(float) Constant 1101004800
23: 6(float) Constant 1101529088
25: 6(float) Constant 1102053376
27: 6(float) Constant 1102577664
29: 6(float) Constant 1103101952
31: 6(float) Constant 1103626240
32: TypeVector 6(float) 2
33: TypePointer Function 32(fvec2)
35: 32(fvec2) ConstantComposite 9 11
37: 32(fvec2) ConstantComposite 13 15
39: 32(fvec2) ConstantComposite 17 19
41: TypeMatrix 32(fvec2) 3
42: 32(fvec2) ConstantComposite 21 23
43: 32(fvec2) ConstantComposite 25 27
44: 32(fvec2) ConstantComposite 29 31
45: 41 ConstantComposite 42 43 44
46: TypeInt 32 1
47($Global): TypeStruct 46(int) 41
48: TypePointer Uniform 47($Global)
49: 48(ptr) Variable Uniform
50: 46(int) Constant 0
51: TypePointer Uniform 46(int)
54: TypePointer Function 41
59: 46(int) Constant 1
62: TypePointer Uniform 32(fvec2)
65: TypeVector 6(float) 4
66(PS_OUTPUT): TypeStruct 65(fvec4)
67: TypePointer Function 66(PS_OUTPUT)
71: TypePointer Function 65(fvec4)
73: TypePointer Output 65(fvec4)
74(Color): 73(ptr) Variable Output
4(main): 2 Function None 3
5: Label
8(e1_00): 7(ptr) Variable Function
10(e1_01): 7(ptr) Variable Function
12(e1_10): 7(ptr) Variable Function
14(e1_11): 7(ptr) Variable Function
16(e1_20): 7(ptr) Variable Function
18(e1_21): 7(ptr) Variable Function
20(e2_00): 7(ptr) Variable Function
22(e2_01): 7(ptr) Variable Function
24(e2_10): 7(ptr) Variable Function
26(e2_11): 7(ptr) Variable Function
28(e2_20): 7(ptr) Variable Function
30(e2_21): 7(ptr) Variable Function
34(r0a): 33(ptr) Variable Function
36(r1a): 33(ptr) Variable Function
38(r2a): 33(ptr) Variable Function
40(r0b): 33(ptr) Variable Function
55(indexable): 54(ptr) Variable Function
58(r0c): 33(ptr) Variable Function
68(psout): 67(ptr) Variable Function
Store 8(e1_00) 9
Store 10(e1_01) 11
Store 12(e1_10) 13
Store 14(e1_11) 15
Store 16(e1_20) 17
Store 18(e1_21) 19
Store 20(e2_00) 21
Store 22(e2_01) 23
Store 24(e2_10) 25
Store 26(e2_11) 27
Store 28(e2_20) 29
Store 30(e2_21) 31
Store 34(r0a) 35
Store 36(r1a) 37
Store 38(r2a) 39
52: 51(ptr) AccessChain 49 50
53: 46(int) Load 52
Store 55(indexable) 45
56: 33(ptr) AccessChain 55(indexable) 53
57: 32(fvec2) Load 56
Store 40(r0b) 57
60: 51(ptr) AccessChain 49 50
61: 46(int) Load 60
63: 62(ptr) AccessChain 49 59 61
64: 32(fvec2) Load 63
Store 58(r0c) 64
69: 6(float) Load 26(e2_11)
70: 65(fvec4) CompositeConstruct 69 69 69 69
72: 71(ptr) AccessChain 68(psout) 50
Store 72 70
75: 71(ptr) AccessChain 68(psout) 50
76: 65(fvec4) Load 75
Store 74(Color) 76
Return
FunctionEnd