hlsl.struct.frag
WARNING: 0:26: 'register' : ignoring shader_profile 
WARNING: 0:27: 'register' : ignoring shader_profile 
WARNING: 0:30: 'register' : ignoring shader_profile 

Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:34  Function Definition: PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float)
0:34    Function Parameters: 
0:34      'input' (layout(location=0 ) in 4-component vector of float)
0:34      's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
0:?     Sequence
0:39      Compare Equal (temp bool)
0:39        's3' (temp structure{temp 3-component vector of bool b3})
0:39        's3' (temp structure{temp 3-component vector of bool b3})
0:40      move second child to first child (temp 4-component vector of float)
0:40        i: direct index for structure (temp 4-component vector of float)
0:40          's2' (global structure{temp 4-component vector of float i})
0:40          Constant:
0:40            0 (const int)
0:?         'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float)
0:42      Sequence
0:42        move second child to first child (temp 4-component vector of float)
0:?           '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:42          'input' (layout(location=0 ) in 4-component vector of float)
0:42        Branch: Return
0:?   Linker Objects
0:?     's2' (global structure{temp 4-component vector of float i})
0:?     '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:?     'anon@0' (uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6})
0:?     'input' (layout(location=0 ) in 4-component vector of float)
0:?     'a' (layout(location=1 ) smooth in 4-component vector of float)
0:?     'b' (layout(location=2 ) flat in bool)
0:?     'c' (layout(location=3 ) centroid noperspective in 1-component vector of float)
0:?     'd' (layout(location=4 ) centroid sample in 2-component vector of float)
0:?     'ff1' (in bool Face)
0:?     'ff2' (layout(location=5 offset=4 ) in bool)
0:?     'ff3' (layout(location=6 binding=0 offset=4 ) in bool)
0:?     'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float)


Linked fragment stage:


Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:34  Function Definition: PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float)
0:34    Function Parameters: 
0:34      'input' (layout(location=0 ) in 4-component vector of float)
0:34      's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
0:?     Sequence
0:39      Compare Equal (temp bool)
0:39        's3' (temp structure{temp 3-component vector of bool b3})
0:39        's3' (temp structure{temp 3-component vector of bool b3})
0:40      move second child to first child (temp 4-component vector of float)
0:40        i: direct index for structure (temp 4-component vector of float)
0:40          's2' (global structure{temp 4-component vector of float i})
0:40          Constant:
0:40            0 (const int)
0:?         'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float)
0:42      Sequence
0:42        move second child to first child (temp 4-component vector of float)
0:?           '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:42          'input' (layout(location=0 ) in 4-component vector of float)
0:42        Branch: Return
0:?   Linker Objects
0:?     's2' (global structure{temp 4-component vector of float i})
0:?     '@entryPointOutput' (layout(location=0 ) out 4-component vector of float)
0:?     'anon@0' (uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6})
0:?     'input' (layout(location=0 ) in 4-component vector of float)
0:?     'a' (layout(location=1 ) smooth in 4-component vector of float)
0:?     'b' (layout(location=2 ) flat in bool)
0:?     'c' (layout(location=3 ) centroid noperspective in 1-component vector of float)
0:?     'd' (layout(location=4 ) centroid sample in 2-component vector of float)
0:?     'ff1' (in bool Face)
0:?     'ff2' (layout(location=5 offset=4 ) in bool)
0:?     'ff3' (layout(location=6 binding=0 offset=4 ) in bool)
0:?     'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "PixelShaderFunction" 25 30 31 38 40 42 45 46 47 48
                              ExecutionMode 4 OriginUpperLeft
                              Name 4  "PixelShaderFunction"
                              Name 8  "FS"
                              MemberName 8(FS) 0  "b3"
                              Name 10  "s3"
                              Name 19  ""
                              MemberName 19 0  "i"
                              Name 21  "s2"
                              Name 25  "ff4"
                              Name 30  "@entryPointOutput"
                              Name 31  "input"
                              Name 34  "myS"
                              MemberName 34(myS) 0  "b"
                              MemberName 34(myS) 1  "c"
                              MemberName 34(myS) 2  "a"
                              MemberName 34(myS) 3  "d"
                              Name 35  "$Global"
                              MemberName 35($Global) 0  "s1"
                              MemberName 35($Global) 1  "ff5"
                              MemberName 35($Global) 2  "ff6"
                              Name 37  ""
                              Name 38  "a"
                              Name 40  "b"
                              Name 42  "c"
                              Name 45  "d"
                              Name 46  "ff1"
                              Name 47  "ff2"
                              Name 48  "ff3"
                              Decorate 25(ff4) Offset 4
                              Decorate 25(ff4) Location 7
                              Decorate 25(ff4) Binding 0
                              Decorate 30(@entryPointOutput) Location 0
                              Decorate 31(input) Location 0
                              Decorate 35($Global) Block
                              Decorate 37 DescriptorSet 0
                              Decorate 38(a) Location 1
                              Decorate 40(b) Flat
                              Decorate 40(b) Location 2
                              Decorate 42(c) NoPerspective
                              Decorate 42(c) Centroid
                              Decorate 42(c) Location 3
                              Decorate 45(d) Centroid
                              Decorate 45(d) Location 4
                              Decorate 46(ff1) BuiltIn FrontFacing
                              Decorate 47(ff2) Offset 4
                              Decorate 47(ff2) Location 5
                              Decorate 48(ff3) Offset 4
                              Decorate 48(ff3) Location 6
                              Decorate 48(ff3) Binding 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeBool
               7:             TypeVector 6(bool) 3
           8(FS):             TypeStruct 7(bvec3)
               9:             TypePointer Function 8(FS)
              17:             TypeFloat 32
              18:             TypeVector 17(float) 4
              19:             TypeStruct 18(fvec4)
              20:             TypePointer Private 19(struct)
          21(s2):     20(ptr) Variable Private
              22:             TypeInt 32 1
              23:     22(int) Constant 0
              24:             TypePointer Input 18(fvec4)
         25(ff4):     24(ptr) Variable Input
              27:             TypePointer Private 18(fvec4)
              29:             TypePointer Output 18(fvec4)
30(@entryPointOutput):     29(ptr) Variable Output
       31(input):     24(ptr) Variable Input
         34(myS):             TypeStruct 6(bool) 6(bool) 18(fvec4) 18(fvec4)
     35($Global):             TypeStruct 34(myS) 17(float) 17(float)
              36:             TypePointer Uniform 35($Global)
              37:     36(ptr) Variable Uniform
           38(a):     24(ptr) Variable Input
              39:             TypePointer Input 6(bool)
           40(b):     39(ptr) Variable Input
              41:             TypePointer Input 17(float)
           42(c):     41(ptr) Variable Input
              43:             TypeVector 17(float) 2
              44:             TypePointer Input 43(fvec2)
           45(d):     44(ptr) Variable Input
         46(ff1):     39(ptr) Variable Input
         47(ff2):     39(ptr) Variable Input
         48(ff3):     39(ptr) Variable Input
4(PixelShaderFunction):           2 Function None 3
               5:             Label
          10(s3):      9(ptr) Variable Function
              11:       8(FS) Load 10(s3)
              12:       8(FS) Load 10(s3)
              13:    7(bvec3) CompositeExtract 11 0
              14:    7(bvec3) CompositeExtract 12 0
              15:    7(bvec3) LogicalEqual 13 14
              16:     6(bool) All 15
              26:   18(fvec4) Load 25(ff4)
              28:     27(ptr) AccessChain 21(s2) 23
                              Store 28 26
              32:   18(fvec4) Load 31(input)
                              Store 30(@entryPointOutput) 32
                              Return
                              FunctionEnd
