glslang/Test/baseResults/spv.funcall.array.frag.out
Greg Fischer 11c24e9adb Do true SPV type check for function array arg linkage
Previous check was missing type difference between uniform array
actual arg with stride decoration and the formal arg without. Now
does logical or component-wise copy where needed.

Fixes #2637
2021-05-20 10:51:14 -06:00

107 lines
4.9 KiB
Plaintext

spv.funcall.array.frag
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 66
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 27
ExecutionMode 4 OriginUpperLeft
Source GLSL 450
Name 4 "main"
Name 16 "f(vf4[9];i1;"
Name 14 "a"
Name 15 "ix"
Name 20 "indexable"
Name 27 "color"
Name 29 "ub"
MemberName 29(ub) 0 "u"
Name 31 ""
Name 37 "arg"
Name 64 "param"
Decorate 27(color) Location 0
Decorate 28 ArrayStride 16
MemberDecorate 29(ub) 0 Offset 0
Decorate 29(ub) Block
Decorate 31 DescriptorSet 0
Decorate 31 Binding 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypeInt 32 0
9: 8(int) Constant 9
10: TypeArray 7(fvec4) 9
11: TypeInt 32 1
12: TypePointer Function 11(int)
13: TypeFunction 7(fvec4) 10 12(ptr)
19: TypePointer Function 10
21: TypePointer Function 7(fvec4)
26: TypePointer Output 7(fvec4)
27(color): 26(ptr) Variable Output
28: TypeArray 7(fvec4) 9
29(ub): TypeStruct 28
30: TypePointer Uniform 29(ub)
31: 30(ptr) Variable Uniform
32: 11(int) Constant 0
33: TypePointer Uniform 28
36: 11(int) Constant 2
41: 11(int) Constant 1
46: 11(int) Constant 3
49: 11(int) Constant 4
52: 11(int) Constant 5
55: 11(int) Constant 6
58: 11(int) Constant 7
61: 11(int) Constant 8
4(main): 2 Function None 3
5: Label
37(arg): 19(ptr) Variable Function
64(param): 12(ptr) Variable Function
34: 33(ptr) AccessChain 31 32
35: 28 Load 34
38: 7(fvec4) CompositeExtract 35 0
39: 21(ptr) AccessChain 37(arg) 32
Store 39 38
40: 7(fvec4) CompositeExtract 35 1
42: 21(ptr) AccessChain 37(arg) 41
Store 42 40
43: 7(fvec4) CompositeExtract 35 2
44: 21(ptr) AccessChain 37(arg) 36
Store 44 43
45: 7(fvec4) CompositeExtract 35 3
47: 21(ptr) AccessChain 37(arg) 46
Store 47 45
48: 7(fvec4) CompositeExtract 35 4
50: 21(ptr) AccessChain 37(arg) 49
Store 50 48
51: 7(fvec4) CompositeExtract 35 5
53: 21(ptr) AccessChain 37(arg) 52
Store 53 51
54: 7(fvec4) CompositeExtract 35 6
56: 21(ptr) AccessChain 37(arg) 55
Store 56 54
57: 7(fvec4) CompositeExtract 35 7
59: 21(ptr) AccessChain 37(arg) 58
Store 59 57
60: 7(fvec4) CompositeExtract 35 8
62: 21(ptr) AccessChain 37(arg) 61
Store 62 60
63: 10 Load 37(arg)
Store 64(param) 36
65: 7(fvec4) FunctionCall 16(f(vf4[9];i1;) 63 64(param)
Store 27(color) 65
Return
FunctionEnd
16(f(vf4[9];i1;): 7(fvec4) Function None 13
14(a): 10 FunctionParameter
15(ix): 12(ptr) FunctionParameter
17: Label
20(indexable): 19(ptr) Variable Function
18: 11(int) Load 15(ix)
Store 20(indexable) 14(a)
22: 21(ptr) AccessChain 20(indexable) 18
23: 7(fvec4) Load 22
ReturnValue 23
FunctionEnd