hlsl.type.half.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:3  Function Definition: @main( ( temp 4-component vector of float)
0:3    Function Parameters: 
0:?     Sequence
0:4      Sequence
0:4        move second child to first child ( temp float)
0:4          'h0' ( temp float)
0:4          Constant:
0:4            0.000000
0:5      Sequence
0:5        move second child to first child ( temp 1-component vector of float)
0:5          'h1' ( temp 1-component vector of float)
0:5          Constant:
0:5            1.000000
0:6      Sequence
0:6        move second child to first child ( temp 2-component vector of float)
0:6          'h2' ( temp 2-component vector of float)
0:6          Constant:
0:6            2.000000
0:6            2.000000
0:7      Sequence
0:7        move second child to first child ( temp 3-component vector of float)
0:7          'h3' ( temp 3-component vector of float)
0:7          Constant:
0:7            3.000000
0:7            3.000000
0:7            3.000000
0:8      Sequence
0:8        move second child to first child ( temp 4-component vector of float)
0:8          'h4' ( temp 4-component vector of float)
0:8          Constant:
0:8            4.000000
0:8            4.000000
0:8            4.000000
0:8            4.000000
0:15      Sequence
0:15        move second child to first child ( temp 2X2 matrix of float)
0:15          'h22' ( temp 2X2 matrix of float)
0:?           Constant:
0:?             1.000000
0:?             2.000000
0:?             3.000000
0:?             4.000000
0:16      Sequence
0:16        move second child to first child ( temp 2X3 matrix of float)
0:16          'h23' ( temp 2X3 matrix of float)
0:16          Constant:
0:16            4.900000
0:16            4.900000
0:16            4.900000
0:16            4.900000
0:16            4.900000
0:16            4.900000
0:27      Branch: Return with expression
0:27        Construct vec4 ( temp 4-component vector of float)
0:27          add ( temp float)
0:27            add ( temp float)
0:27              direct index ( temp float)
0:27                direct index ( temp 3-component vector of float)
0:27                  'h23' ( temp 2X3 matrix of float)
0:27                  Constant:
0:27                    0 (const int)
0:27                Constant:
0:27                  0 (const int)
0:27              direct index ( temp float)
0:27                'h4' ( temp 4-component vector of float)
0:27                Constant:
0:27                  1 (const int)
0:27            'h0' ( temp float)
0:3  Function Definition: main( ( temp void)
0:3    Function Parameters: 
0:?     Sequence
0:3      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:3        Function Call: @main( ( temp 4-component vector of float)
0:?   Linker Objects
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:3  Function Definition: @main( ( temp 4-component vector of float)
0:3    Function Parameters: 
0:?     Sequence
0:4      Sequence
0:4        move second child to first child ( temp float)
0:4          'h0' ( temp float)
0:4          Constant:
0:4            0.000000
0:5      Sequence
0:5        move second child to first child ( temp 1-component vector of float)
0:5          'h1' ( temp 1-component vector of float)
0:5          Constant:
0:5            1.000000
0:6      Sequence
0:6        move second child to first child ( temp 2-component vector of float)
0:6          'h2' ( temp 2-component vector of float)
0:6          Constant:
0:6            2.000000
0:6            2.000000
0:7      Sequence
0:7        move second child to first child ( temp 3-component vector of float)
0:7          'h3' ( temp 3-component vector of float)
0:7          Constant:
0:7            3.000000
0:7            3.000000
0:7            3.000000
0:8      Sequence
0:8        move second child to first child ( temp 4-component vector of float)
0:8          'h4' ( temp 4-component vector of float)
0:8          Constant:
0:8            4.000000
0:8            4.000000
0:8            4.000000
0:8            4.000000
0:15      Sequence
0:15        move second child to first child ( temp 2X2 matrix of float)
0:15          'h22' ( temp 2X2 matrix of float)
0:?           Constant:
0:?             1.000000
0:?             2.000000
0:?             3.000000
0:?             4.000000
0:16      Sequence
0:16        move second child to first child ( temp 2X3 matrix of float)
0:16          'h23' ( temp 2X3 matrix of float)
0:16          Constant:
0:16            4.900000
0:16            4.900000
0:16            4.900000
0:16            4.900000
0:16            4.900000
0:16            4.900000
0:27      Branch: Return with expression
0:27        Construct vec4 ( temp 4-component vector of float)
0:27          add ( temp float)
0:27            add ( temp float)
0:27              direct index ( temp float)
0:27                direct index ( temp 3-component vector of float)
0:27                  'h23' ( temp 2X3 matrix of float)
0:27                  Constant:
0:27                    0 (const int)
0:27                Constant:
0:27                  0 (const int)
0:27              direct index ( temp float)
0:27                'h4' ( temp 4-component vector of float)
0:27                Constant:
0:27                  1 (const int)
0:27            'h0' ( temp float)
0:3  Function Definition: main( ( temp void)
0:3    Function Parameters: 
0:?     Sequence
0:3      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:3        Function Call: @main( ( temp 4-component vector of float)
0:?   Linker Objects
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)

// Module Version 10000
// Generated by (magic number): 80006
// Id's are bound by 60

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 58
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 9  "@main("
                              Name 12  "h0"
                              Name 14  "h1"
                              Name 18  "h2"
                              Name 23  "h3"
                              Name 27  "h4"
                              Name 32  "h22"
                              Name 38  "h23"
                              Name 58  "@entryPointOutput"
                              Decorate 58(@entryPointOutput) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypeFunction 7(fvec4)
              11:             TypePointer Function 6(float)
              13:    6(float) Constant 0
              15:    6(float) Constant 1065353216
              16:             TypeVector 6(float) 2
              17:             TypePointer Function 16(fvec2)
              19:    6(float) Constant 1073741824
              20:   16(fvec2) ConstantComposite 19 19
              21:             TypeVector 6(float) 3
              22:             TypePointer Function 21(fvec3)
              24:    6(float) Constant 1077936128
              25:   21(fvec3) ConstantComposite 24 24 24
              26:             TypePointer Function 7(fvec4)
              28:    6(float) Constant 1082130432
              29:    7(fvec4) ConstantComposite 28 28 28 28
              30:             TypeMatrix 16(fvec2) 2
              31:             TypePointer Function 30
              33:   16(fvec2) ConstantComposite 15 19
              34:   16(fvec2) ConstantComposite 24 28
              35:          30 ConstantComposite 33 34
              36:             TypeMatrix 21(fvec3) 2
              37:             TypePointer Function 36
              39:    6(float) Constant 1084017869
              40:   21(fvec3) ConstantComposite 39 39 39
              41:          36 ConstantComposite 40 40
              42:             TypeInt 32 1
              43:     42(int) Constant 0
              44:             TypeInt 32 0
              45:     44(int) Constant 0
              48:     44(int) Constant 1
              57:             TypePointer Output 7(fvec4)
58(@entryPointOutput):     57(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
              59:    7(fvec4) FunctionCall 9(@main()
                              Store 58(@entryPointOutput) 59
                              Return
                              FunctionEnd
       9(@main():    7(fvec4) Function None 8
              10:             Label
          12(h0):     11(ptr) Variable Function
          14(h1):     11(ptr) Variable Function
          18(h2):     17(ptr) Variable Function
          23(h3):     22(ptr) Variable Function
          27(h4):     26(ptr) Variable Function
         32(h22):     31(ptr) Variable Function
         38(h23):     37(ptr) Variable Function
                              Store 12(h0) 13
                              Store 14(h1) 15
                              Store 18(h2) 20
                              Store 23(h3) 25
                              Store 27(h4) 29
                              Store 32(h22) 35
                              Store 38(h23) 41
              46:     11(ptr) AccessChain 38(h23) 43 45
              47:    6(float) Load 46
              49:     11(ptr) AccessChain 27(h4) 48
              50:    6(float) Load 49
              51:    6(float) FAdd 47 50
              52:    6(float) Load 12(h0)
              53:    6(float) FAdd 51 52
              54:    7(fvec4) CompositeConstruct 53 53 53 53
                              ReturnValue 54
                              FunctionEnd
