hlsl.promote.vec1.frag
Shader version: 450
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:7      move second child to first child (temp float)
0:7        'f1a' (temp float)
0:7        Construct float (temp float)
0:7          'f1b' (temp 1-component vector of float)
0:8      move second child to first child (temp 1-component vector of float)
0:8        'f1b' (temp 1-component vector of float)
0:8        Construct float (temp 1-component vector of float)
0:8          'f1a' (temp float)
0:11      step (temp 3-component vector of float)
0:11        Constant:
0:11          0.000000
0:11          0.000000
0:11          0.000000
0:11        'f3' (temp 3-component vector of float)
0:13      sine (temp float)
0:13        Construct float (in float)
0:13          'f1b' (temp 1-component vector of float)
0:15      Sequence
0:15        move second child to first child (temp 4-component vector of float)
0:?           '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:?           Constant:
0:?             0.000000
0:?             0.000000
0:?             0.000000
0:?             0.000000
0:15        Branch: Return
0:?   Linker Objects
0:?     '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)


Linked fragment stage:


Shader version: 450
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:7      move second child to first child (temp float)
0:7        'f1a' (temp float)
0:7        Construct float (temp float)
0:7          'f1b' (temp 1-component vector of float)
0:8      move second child to first child (temp 1-component vector of float)
0:8        'f1b' (temp 1-component vector of float)
0:8        Construct float (temp 1-component vector of float)
0:8          'f1a' (temp float)
0:11      step (temp 3-component vector of float)
0:11        Constant:
0:11          0.000000
0:11          0.000000
0:11          0.000000
0:11        'f3' (temp 3-component vector of float)
0:13      sine (temp float)
0:13        Construct float (in float)
0:13          'f1b' (temp 1-component vector of float)
0:15      Sequence
0:15        move second child to first child (temp 4-component vector of float)
0:?           '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:?           Constant:
0:?             0.000000
0:?             0.000000
0:?             0.000000
0:?             0.000000
0:15        Branch: Return
0:?   Linker Objects
0:?     '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 23
                              ExecutionMode 4 OriginUpperLeft
                              Name 4  "main"
                              Name 8  "f1a"
                              Name 9  "f1b"
                              Name 16  "f3"
                              Name 23  "@entryPointOutput"
                              Decorate 23(@entryPointOutput) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypePointer Function 6(float)
              12:             TypeVector 6(float) 3
              13:    6(float) Constant 0
              14:   12(fvec3) ConstantComposite 13 13 13
              15:             TypePointer Function 12(fvec3)
              21:             TypeVector 6(float) 4
              22:             TypePointer Output 21(fvec4)
23(@entryPointOutput):     22(ptr) Variable Output
              24:   21(fvec4) ConstantComposite 13 13 13 13
         4(main):           2 Function None 3
               5:             Label
          8(f1a):      7(ptr) Variable Function
          9(f1b):      7(ptr) Variable Function
          16(f3):     15(ptr) Variable Function
              10:    6(float) Load 9(f1b)
                              Store 8(f1a) 10
              11:    6(float) Load 8(f1a)
                              Store 9(f1b) 11
              17:   12(fvec3) Load 16(f3)
              18:   12(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 14 17
              19:    6(float) Load 9(f1b)
              20:    6(float) ExtInst 1(GLSL.std.450) 13(Sin) 19
                              Store 23(@entryPointOutput) 24
                              Return
                              FunctionEnd
