hlsl.numericsuffixes.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:8  Function Definition: @main( ( temp structure{ temp 4-component vector of float color})
0:8    Function Parameters: 
0:?     Sequence
0:10      Sequence
0:10        move second child to first child ( temp float)
0:10          'r00' ( temp float)
0:10          Constant:
0:10            1.000000
0:11      Sequence
0:11        move second child to first child ( temp uint)
0:11          'r01' ( temp uint)
0:11          Constant:
0:11            1 (const uint)
0:12      Sequence
0:12        move second child to first child ( temp uint)
0:12          'r02' ( temp uint)
0:12          Constant:
0:12            2 (const uint)
0:13      Sequence
0:13        move second child to first child ( temp uint)
0:13          'r03' ( temp uint)
0:13          Constant:
0:13            2748 (const uint)
0:14      Sequence
0:14        move second child to first child ( temp uint)
0:14          'r04' ( temp uint)
0:14          Constant:
0:14            2748 (const uint)
0:15      Sequence
0:15        move second child to first child ( temp int)
0:15          'r05' ( temp int)
0:15          Constant:
0:15            5 (const int)
0:16      Sequence
0:16        move second child to first child ( temp int)
0:16          'r06' ( temp int)
0:16          Constant:
0:16            6 (const int)
0:17      Sequence
0:17        move second child to first child ( temp int)
0:17          'r07' ( temp int)
0:17          Constant:
0:17            57 (const int)
0:18      Sequence
0:18        move second child to first child ( temp uint)
0:18          'r08' ( temp uint)
0:18          Constant:
0:18            58 (const uint)
0:19      Sequence
0:19        move second child to first child ( temp float)
0:19          'r09' ( temp float)
0:19          Constant:
0:19            1.000000
0:20      Sequence
0:20        move second child to first child ( temp float)
0:20          'r10' ( temp float)
0:20          Constant:
0:20            1.000000
0:21      Sequence
0:21        move second child to first child ( temp float)
0:21          'r11' ( temp float)
0:21          Constant:
0:21            1.100000
0:22      Sequence
0:22        move second child to first child ( temp float)
0:22          'r12' ( temp float)
0:22          Constant:
0:22            1.100000
0:23      Sequence
0:23        move second child to first child ( temp uint)
0:23          'r13' ( temp uint)
0:23          Constant:
0:23            1 (const uint)
0:24      Sequence
0:24        move second child to first child ( temp uint)
0:24          'r14' ( temp uint)
0:24          Constant:
0:24            2 (const uint)
0:25      Sequence
0:25        move second child to first child ( temp int)
0:25          'r15' ( temp int)
0:25          Constant:
0:25            3 (const int)
0:26      Sequence
0:26        move second child to first child ( temp int)
0:26          'r16' ( temp int)
0:26          Constant:
0:26            4 (const int)
0:27      Sequence
0:27        move second child to first child ( temp uint)
0:27          'r17' ( temp uint)
0:27          Constant:
0:27            1 (const uint)
0:28      Sequence
0:28        move second child to first child ( temp int)
0:28          'r18' ( temp int)
0:28          Constant:
0:28            3 (const int)
0:31      move second child to first child ( temp 4-component vector of float)
0:31        color: direct index for structure ( temp 4-component vector of float)
0:31          'ps_output' ( temp structure{ temp 4-component vector of float color})
0:31          Constant:
0:31            0 (const int)
0:31        Construct vec4 ( temp 4-component vector of float)
0:31          Convert int to float ( temp float)
0:31            'r07' ( temp int)
0:32      Branch: Return with expression
0:32        'ps_output' ( temp structure{ temp 4-component vector of float color})
0:8  Function Definition: main( ( temp void)
0:8    Function Parameters: 
0:?     Sequence
0:8      Sequence
0:8        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)
0:8          color: direct index for structure ( temp 4-component vector of float)
0:8            Function Call: @main( ( temp structure{ temp 4-component vector of float color})
0:8            Constant:
0:8              0 (const int)
0:?   Linker Objects
0:?     '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:8  Function Definition: @main( ( temp structure{ temp 4-component vector of float color})
0:8    Function Parameters: 
0:?     Sequence
0:10      Sequence
0:10        move second child to first child ( temp float)
0:10          'r00' ( temp float)
0:10          Constant:
0:10            1.000000
0:11      Sequence
0:11        move second child to first child ( temp uint)
0:11          'r01' ( temp uint)
0:11          Constant:
0:11            1 (const uint)
0:12      Sequence
0:12        move second child to first child ( temp uint)
0:12          'r02' ( temp uint)
0:12          Constant:
0:12            2 (const uint)
0:13      Sequence
0:13        move second child to first child ( temp uint)
0:13          'r03' ( temp uint)
0:13          Constant:
0:13            2748 (const uint)
0:14      Sequence
0:14        move second child to first child ( temp uint)
0:14          'r04' ( temp uint)
0:14          Constant:
0:14            2748 (const uint)
0:15      Sequence
0:15        move second child to first child ( temp int)
0:15          'r05' ( temp int)
0:15          Constant:
0:15            5 (const int)
0:16      Sequence
0:16        move second child to first child ( temp int)
0:16          'r06' ( temp int)
0:16          Constant:
0:16            6 (const int)
0:17      Sequence
0:17        move second child to first child ( temp int)
0:17          'r07' ( temp int)
0:17          Constant:
0:17            57 (const int)
0:18      Sequence
0:18        move second child to first child ( temp uint)
0:18          'r08' ( temp uint)
0:18          Constant:
0:18            58 (const uint)
0:19      Sequence
0:19        move second child to first child ( temp float)
0:19          'r09' ( temp float)
0:19          Constant:
0:19            1.000000
0:20      Sequence
0:20        move second child to first child ( temp float)
0:20          'r10' ( temp float)
0:20          Constant:
0:20            1.000000
0:21      Sequence
0:21        move second child to first child ( temp float)
0:21          'r11' ( temp float)
0:21          Constant:
0:21            1.100000
0:22      Sequence
0:22        move second child to first child ( temp float)
0:22          'r12' ( temp float)
0:22          Constant:
0:22            1.100000
0:23      Sequence
0:23        move second child to first child ( temp uint)
0:23          'r13' ( temp uint)
0:23          Constant:
0:23            1 (const uint)
0:24      Sequence
0:24        move second child to first child ( temp uint)
0:24          'r14' ( temp uint)
0:24          Constant:
0:24            2 (const uint)
0:25      Sequence
0:25        move second child to first child ( temp int)
0:25          'r15' ( temp int)
0:25          Constant:
0:25            3 (const int)
0:26      Sequence
0:26        move second child to first child ( temp int)
0:26          'r16' ( temp int)
0:26          Constant:
0:26            4 (const int)
0:27      Sequence
0:27        move second child to first child ( temp uint)
0:27          'r17' ( temp uint)
0:27          Constant:
0:27            1 (const uint)
0:28      Sequence
0:28        move second child to first child ( temp int)
0:28          'r18' ( temp int)
0:28          Constant:
0:28            3 (const int)
0:31      move second child to first child ( temp 4-component vector of float)
0:31        color: direct index for structure ( temp 4-component vector of float)
0:31          'ps_output' ( temp structure{ temp 4-component vector of float color})
0:31          Constant:
0:31            0 (const int)
0:31        Construct vec4 ( temp 4-component vector of float)
0:31          Convert int to float ( temp float)
0:31            'r07' ( temp int)
0:32      Branch: Return with expression
0:32        'ps_output' ( temp structure{ temp 4-component vector of float color})
0:8  Function Definition: main( ( temp void)
0:8    Function Parameters: 
0:?     Sequence
0:8      Sequence
0:8        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)
0:8          color: direct index for structure ( temp 4-component vector of float)
0:8            Function Call: @main( ( temp structure{ temp 4-component vector of float color})
0:8            Constant:
0:8              0 (const int)
0:?   Linker Objects
0:?     '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)

// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 62

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 59
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 8  "PS_OUTPUT"
                              MemberName 8(PS_OUTPUT) 0  "color"
                              Name 10  "@main("
                              Name 13  "r00"
                              Name 17  "r01"
                              Name 19  "r02"
                              Name 21  "r03"
                              Name 23  "r04"
                              Name 26  "r05"
                              Name 28  "r06"
                              Name 30  "r07"
                              Name 32  "r08"
                              Name 34  "r09"
                              Name 35  "r10"
                              Name 36  "r11"
                              Name 38  "r12"
                              Name 39  "r13"
                              Name 40  "r14"
                              Name 41  "r15"
                              Name 43  "r16"
                              Name 45  "r17"
                              Name 46  "r18"
                              Name 48  "ps_output"
                              Name 59  "@entryPointOutput.color"
                              Decorate 59(@entryPointOutput.color) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
    8(PS_OUTPUT):             TypeStruct 7(fvec4)
               9:             TypeFunction 8(PS_OUTPUT)
              12:             TypePointer Function 6(float)
              14:    6(float) Constant 1065353216
              15:             TypeInt 32 0
              16:             TypePointer Function 15(int)
              18:     15(int) Constant 1
              20:     15(int) Constant 2
              22:     15(int) Constant 2748
              24:             TypeInt 32 1
              25:             TypePointer Function 24(int)
              27:     24(int) Constant 5
              29:     24(int) Constant 6
              31:     24(int) Constant 57
              33:     15(int) Constant 58
              37:    6(float) Constant 1066192077
              42:     24(int) Constant 3
              44:     24(int) Constant 4
              47:             TypePointer Function 8(PS_OUTPUT)
              49:     24(int) Constant 0
              53:             TypePointer Function 7(fvec4)
              58:             TypePointer Output 7(fvec4)
59(@entryPointOutput.color):     58(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
              60:8(PS_OUTPUT) FunctionCall 10(@main()
              61:    7(fvec4) CompositeExtract 60 0
                              Store 59(@entryPointOutput.color) 61
                              Return
                              FunctionEnd
      10(@main():8(PS_OUTPUT) Function None 9
              11:             Label
         13(r00):     12(ptr) Variable Function
         17(r01):     16(ptr) Variable Function
         19(r02):     16(ptr) Variable Function
         21(r03):     16(ptr) Variable Function
         23(r04):     16(ptr) Variable Function
         26(r05):     25(ptr) Variable Function
         28(r06):     25(ptr) Variable Function
         30(r07):     25(ptr) Variable Function
         32(r08):     16(ptr) Variable Function
         34(r09):     12(ptr) Variable Function
         35(r10):     12(ptr) Variable Function
         36(r11):     12(ptr) Variable Function
         38(r12):     12(ptr) Variable Function
         39(r13):     16(ptr) Variable Function
         40(r14):     16(ptr) Variable Function
         41(r15):     25(ptr) Variable Function
         43(r16):     25(ptr) Variable Function
         45(r17):     16(ptr) Variable Function
         46(r18):     25(ptr) Variable Function
   48(ps_output):     47(ptr) Variable Function
                              Store 13(r00) 14
                              Store 17(r01) 18
                              Store 19(r02) 20
                              Store 21(r03) 22
                              Store 23(r04) 22
                              Store 26(r05) 27
                              Store 28(r06) 29
                              Store 30(r07) 31
                              Store 32(r08) 33
                              Store 34(r09) 14
                              Store 35(r10) 14
                              Store 36(r11) 37
                              Store 38(r12) 37
                              Store 39(r13) 18
                              Store 40(r14) 20
                              Store 41(r15) 42
                              Store 43(r16) 44
                              Store 45(r17) 18
                              Store 46(r18) 42
              50:     24(int) Load 30(r07)
              51:    6(float) ConvertSToF 50
              52:    7(fvec4) CompositeConstruct 51 51 51 51
              54:     53(ptr) AccessChain 48(ps_output) 49
                              Store 54 52
              55:8(PS_OUTPUT) Load 48(ps_output)
                              ReturnValue 55
                              FunctionEnd
