spv.shiftOps.frag
// Module Version 10000
// Generated by (magic number): 80005
// Id's are bound by 38

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 9 11 15 25 27 30
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 450
                              Name 4  "main"
                              Name 9  "icolor"
                              Name 11  "i3"
                              Name 15  "u1"
                              Name 25  "ucolor"
                              Name 27  "u3"
                              Name 30  "i1"
                              Decorate 11(i3) Flat
                              Decorate 15(u1) Flat
                              Decorate 27(u3) Flat
                              Decorate 30(i1) Flat
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
               7:             TypeVector 6(int) 3
               8:             TypePointer Output 7(ivec3)
       9(icolor):      8(ptr) Variable Output
              10:             TypePointer Input 7(ivec3)
          11(i3):     10(ptr) Variable Input
              13:             TypeInt 32 0
              14:             TypePointer Input 13(int)
          15(u1):     14(ptr) Variable Input
              17:             TypeVector 13(int) 3
              20:     13(int) Constant 4
              24:             TypePointer Output 17(ivec3)
      25(ucolor):     24(ptr) Variable Output
              26:             TypePointer Input 17(ivec3)
          27(u3):     26(ptr) Variable Input
              29:             TypePointer Input 6(int)
          30(i1):     29(ptr) Variable Input
              34:      6(int) Constant 5
         4(main):           2 Function None 3
               5:             Label
              12:    7(ivec3) Load 11(i3)
              16:     13(int) Load 15(u1)
              18:   17(ivec3) CompositeConstruct 16 16 16
              19:    7(ivec3) ShiftLeftLogical 12 18
                              Store 9(icolor) 19
              21:    7(ivec3) Load 9(icolor)
              22:   17(ivec3) CompositeConstruct 20 20 20
              23:    7(ivec3) ShiftLeftLogical 21 22
                              Store 9(icolor) 23
              28:   17(ivec3) Load 27(u3)
              31:      6(int) Load 30(i1)
              32:    7(ivec3) CompositeConstruct 31 31 31
              33:   17(ivec3) ShiftRightLogical 28 32
                              Store 25(ucolor) 33
              35:   17(ivec3) Load 25(ucolor)
              36:    7(ivec3) CompositeConstruct 34 34 34
              37:   17(ivec3) ShiftRightLogical 35 36
                              Store 25(ucolor) 37
                              Return
                              FunctionEnd
