hlsl.precise.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:6  Function Definition: MyFunction(f1;vf3; (temp void)
0:6    Function Parameters: 
0:6      'myfloat' (noContraction in float)
0:6      'myfloat3' (noContraction out 3-component vector of float)
0:9  Function Definition: main( (temp structure{noContraction temp 4-component vector of float color})
0:9    Function Parameters: 
0:?     Sequence
0:11      move second child to first child (noContraction temp 4-component vector of float)
0:11        color: direct index for structure (noContraction temp 4-component vector of float)
0:11          'ps_output' (temp structure{noContraction temp 4-component vector of float color})
0:11          Constant:
0:11            0 (const int)
0:11        Constant:
0:11          1.000000
0:11          1.000000
0:11          1.000000
0:11          1.000000
0:12      Sequence
0:12        Sequence
0:12          move second child to first child (noContraction temp 4-component vector of float)
0:?             'color' (layout(location=0 ) noContraction out 4-component vector of float)
0:12            color: direct index for structure (noContraction temp 4-component vector of float)
0:12              'ps_output' (temp structure{noContraction temp 4-component vector of float color})
0:12              Constant:
0:12                0 (const int)
0:12        Branch: Return
0:?   Linker Objects
0:?     'color' (layout(location=0 ) noContraction out 4-component vector of float)
0:?     'precisefloat' (noContraction global float)


Linked fragment stage:


Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:6  Function Definition: MyFunction(f1;vf3; (temp void)
0:6    Function Parameters: 
0:6      'myfloat' (noContraction in float)
0:6      'myfloat3' (noContraction out 3-component vector of float)
0:9  Function Definition: main( (temp structure{noContraction temp 4-component vector of float color})
0:9    Function Parameters: 
0:?     Sequence
0:11      move second child to first child (noContraction temp 4-component vector of float)
0:11        color: direct index for structure (noContraction temp 4-component vector of float)
0:11          'ps_output' (temp structure{noContraction temp 4-component vector of float color})
0:11          Constant:
0:11            0 (const int)
0:11        Constant:
0:11          1.000000
0:11          1.000000
0:11          1.000000
0:11          1.000000
0:12      Sequence
0:12        Sequence
0:12          move second child to first child (noContraction temp 4-component vector of float)
0:?             'color' (layout(location=0 ) noContraction out 4-component vector of float)
0:12            color: direct index for structure (noContraction temp 4-component vector of float)
0:12              'ps_output' (temp structure{noContraction temp 4-component vector of float color})
0:12              Constant:
0:12                0 (const int)
0:12        Branch: Return
0:?   Linker Objects
0:?     'color' (layout(location=0 ) noContraction out 4-component vector of float)
0:?     'precisefloat' (noContraction global float)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 26
                              ExecutionMode 4 OriginUpperLeft
                              Name 4  "main"
                              Name 13  "MyFunction(f1;vf3;"
                              Name 11  "myfloat"
                              Name 12  "myfloat3"
                              Name 16  "PS_OUTPUT"
                              MemberName 16(PS_OUTPUT) 0  "color"
                              Name 18  "ps_output"
                              Name 26  "color"
                              Name 31  "precisefloat"
                              Decorate 26(color) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypePointer Function 6(float)
               8:             TypeVector 6(float) 3
               9:             TypePointer Function 8(fvec3)
              10:             TypeFunction 2 7(ptr) 9(ptr)
              15:             TypeVector 6(float) 4
   16(PS_OUTPUT):             TypeStruct 15(fvec4)
              17:             TypePointer Function 16(PS_OUTPUT)
              19:             TypeInt 32 1
              20:     19(int) Constant 0
              21:    6(float) Constant 1065353216
              22:   15(fvec4) ConstantComposite 21 21 21 21
              23:             TypePointer Function 15(fvec4)
              25:             TypePointer Output 15(fvec4)
       26(color):     25(ptr) Variable Output
              30:             TypePointer Private 6(float)
31(precisefloat):     30(ptr) Variable Private
         4(main):           2 Function None 3
               5:             Label
   18(ps_output):     17(ptr) Variable Function
              24:     23(ptr) AccessChain 18(ps_output) 20
                              Store 24 22
              27:     23(ptr) AccessChain 18(ps_output) 20
              28:   15(fvec4) Load 27
                              Store 26(color) 28
                              Return
                              FunctionEnd
13(MyFunction(f1;vf3;):           2 Function None 10
     11(myfloat):      7(ptr) FunctionParameter
    12(myfloat3):      9(ptr) FunctionParameter
              14:             Label
                              Return
                              FunctionEnd
