mirror of
https://github.com/RPCS3/glslang.git
synced 2024-12-03 16:41:30 +00:00
297754cfe8
If some DCE is performed such as removing dead functions, then even if we are NOT stripping debug info, we still must remove the debug opcodes that refer to the now-dead IDs. Also, this adds a small change to perform no ID remapping if none is requested, making spirv-remap properly be a no-op if no options are given.
132 lines
5.9 KiB
Plaintext
132 lines
5.9 KiB
Plaintext
remap.similar_1a.none.frag
|
|
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
|
|
|
|
// Module Version 10000
|
|
// Generated by (magic number): 80001
|
|
// Id's are bound by 86
|
|
|
|
Capability Shader
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Fragment 4 "main" 53 73 75
|
|
ExecutionMode 4 OriginUpperLeft
|
|
Source GLSL 450
|
|
Name 4 "main"
|
|
Name 11 "Test1(i1;"
|
|
Name 10 "bound"
|
|
Name 14 "Test2(i1;"
|
|
Name 13 "bound"
|
|
Name 17 "r"
|
|
Name 19 "x"
|
|
Name 44 "param"
|
|
Name 53 "ini4"
|
|
Name 73 "outf4"
|
|
Name 75 "inf"
|
|
Name 78 "param"
|
|
Name 82 "param"
|
|
Decorate 53(ini4) Flat
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeInt 32 1
|
|
7: TypePointer Function 6(int)
|
|
8: TypeFloat 32
|
|
9: TypeFunction 8(float) 7(ptr)
|
|
16: TypePointer Function 8(float)
|
|
18: 8(float) Constant 0
|
|
20: 6(int) Constant 0
|
|
28: TypeBool
|
|
30: 8(float) Constant 1056964608
|
|
34: 6(int) Constant 1
|
|
40: 6(int) Constant 2
|
|
51: TypeVector 6(int) 4
|
|
52: TypePointer Input 51(ivec4)
|
|
53(ini4): 52(ptr) Variable Input
|
|
54: TypeInt 32 0
|
|
55: 54(int) Constant 1
|
|
56: TypePointer Input 6(int)
|
|
59: 54(int) Constant 2
|
|
64: 54(int) Constant 0
|
|
71: TypeVector 8(float) 4
|
|
72: TypePointer Output 71(fvec4)
|
|
73(outf4): 72(ptr) Variable Output
|
|
74: TypePointer Input 8(float)
|
|
75(inf): 74(ptr) Variable Input
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
78(param): 7(ptr) Variable Function
|
|
82(param): 7(ptr) Variable Function
|
|
76: 8(float) Load 75(inf)
|
|
77: 6(int) ConvertFToS 76
|
|
Store 78(param) 77
|
|
79: 8(float) FunctionCall 11(Test1(i1;) 78(param)
|
|
80: 8(float) Load 75(inf)
|
|
81: 6(int) ConvertFToS 80
|
|
Store 82(param) 81
|
|
83: 8(float) FunctionCall 14(Test2(i1;) 82(param)
|
|
84: 8(float) FAdd 79 83
|
|
85: 71(fvec4) CompositeConstruct 84 84 84 84
|
|
Store 73(outf4) 85
|
|
Return
|
|
FunctionEnd
|
|
11(Test1(i1;): 8(float) Function None 9
|
|
10(bound): 7(ptr) FunctionParameter
|
|
12: Label
|
|
17(r): 16(ptr) Variable Function
|
|
19(x): 7(ptr) Variable Function
|
|
Store 17(r) 18
|
|
Store 19(x) 20
|
|
Branch 21
|
|
21: Label
|
|
LoopMerge 23 24 None
|
|
Branch 25
|
|
25: Label
|
|
26: 6(int) Load 19(x)
|
|
27: 6(int) Load 10(bound)
|
|
29: 28(bool) SLessThan 26 27
|
|
BranchConditional 29 22 23
|
|
22: Label
|
|
31: 8(float) Load 17(r)
|
|
32: 8(float) FAdd 31 30
|
|
Store 17(r) 32
|
|
Branch 24
|
|
24: Label
|
|
33: 6(int) Load 19(x)
|
|
35: 6(int) IAdd 33 34
|
|
Store 19(x) 35
|
|
Branch 21
|
|
23: Label
|
|
36: 8(float) Load 17(r)
|
|
ReturnValue 36
|
|
FunctionEnd
|
|
14(Test2(i1;): 8(float) Function None 9
|
|
13(bound): 7(ptr) FunctionParameter
|
|
15: Label
|
|
44(param): 7(ptr) Variable Function
|
|
39: 6(int) Load 13(bound)
|
|
41: 28(bool) SGreaterThan 39 40
|
|
SelectionMerge 43 None
|
|
BranchConditional 41 42 48
|
|
42: Label
|
|
45: 6(int) Load 13(bound)
|
|
Store 44(param) 45
|
|
46: 8(float) FunctionCall 11(Test1(i1;) 44(param)
|
|
ReturnValue 46
|
|
48: Label
|
|
49: 6(int) Load 13(bound)
|
|
50: 6(int) IMul 49 40
|
|
57: 56(ptr) AccessChain 53(ini4) 55
|
|
58: 6(int) Load 57
|
|
60: 56(ptr) AccessChain 53(ini4) 59
|
|
61: 6(int) Load 60
|
|
62: 6(int) IMul 58 61
|
|
63: 6(int) IAdd 50 62
|
|
65: 56(ptr) AccessChain 53(ini4) 64
|
|
66: 6(int) Load 65
|
|
67: 6(int) IAdd 63 66
|
|
68: 8(float) ConvertSToF 67
|
|
ReturnValue 68
|
|
43: Label
|
|
70: 8(float) Undef
|
|
ReturnValue 70
|
|
FunctionEnd
|