hlsl.identifier.sample.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:9  Function Definition: sample(i1; ( temp int)
0:9    Function Parameters: 
0:9      'x' ( in int)
0:?     Sequence
0:9      Branch: Return with expression
0:9        'x' ( in int)
0:12  Function Definition: @main( ( temp 4-component vector of float)
0:12    Function Parameters: 
0:?     Sequence
0:15      Sequence
0:15        move second child to first child ( temp 4-component vector of float)
0:15          'sample' ( temp 4-component vector of float)
0:15          Constant:
0:15            3.000000
0:15            4.000000
0:15            5.000000
0:15            6.000000
0:17      Branch: Return with expression
0:17        vector swizzle ( temp 4-component vector of float)
0:17          'sample' ( temp 4-component vector of float)
0:17          Sequence
0:17            Constant:
0:17              0 (const int)
0:17            Constant:
0:17              1 (const int)
0:17            Constant:
0:17              2 (const int)
0:17            Constant:
0:17              3 (const int)
0:12  Function Definition: main( ( temp void)
0:12    Function Parameters: 
0:?     Sequence
0:12      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:12        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:9  Function Definition: sample(i1; ( temp int)
0:9    Function Parameters: 
0:9      'x' ( in int)
0:?     Sequence
0:9      Branch: Return with expression
0:9        'x' ( in int)
0:12  Function Definition: @main( ( temp 4-component vector of float)
0:12    Function Parameters: 
0:?     Sequence
0:15      Sequence
0:15        move second child to first child ( temp 4-component vector of float)
0:15          'sample' ( temp 4-component vector of float)
0:15          Constant:
0:15            3.000000
0:15            4.000000
0:15            5.000000
0:15            6.000000
0:17      Branch: Return with expression
0:17        vector swizzle ( temp 4-component vector of float)
0:17          'sample' ( temp 4-component vector of float)
0:17          Sequence
0:17            Constant:
0:17              0 (const int)
0:17            Constant:
0:17              1 (const int)
0:17            Constant:
0:17              2 (const int)
0:17            Constant:
0:17              3 (const int)
0:12  Function Definition: main( ( temp void)
0:12    Function Parameters: 
0:?     Sequence
0:12      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:12        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): 8000a
// Id's are bound by 33

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 31
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 10  "sample(i1;"
                              Name 9  "x"
                              Name 15  "@main("
                              Name 21  "sample"
                              Name 31  "@entryPointOutput"
                              Decorate 31(@entryPointOutput) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
               7:             TypePointer Function 6(int)
               8:             TypeFunction 6(int) 7(ptr)
              12:             TypeFloat 32
              13:             TypeVector 12(float) 4
              14:             TypeFunction 13(fvec4)
              20:             TypePointer Function 13(fvec4)
              22:   12(float) Constant 1077936128
              23:   12(float) Constant 1082130432
              24:   12(float) Constant 1084227584
              25:   12(float) Constant 1086324736
              26:   13(fvec4) ConstantComposite 22 23 24 25
              30:             TypePointer Output 13(fvec4)
31(@entryPointOutput):     30(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
              32:   13(fvec4) FunctionCall 15(@main()
                              Store 31(@entryPointOutput) 32
                              Return
                              FunctionEnd
  10(sample(i1;):      6(int) Function None 8
            9(x):      7(ptr) FunctionParameter
              11:             Label
              17:      6(int) Load 9(x)
                              ReturnValue 17
                              FunctionEnd
      15(@main():   13(fvec4) Function None 14
              16:             Label
      21(sample):     20(ptr) Variable Function
                              Store 21(sample) 26
              27:   13(fvec4) Load 21(sample)
                              ReturnValue 27
                              FunctionEnd
