spv.ARMCoreBuiltIns.frag
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 26

                              Capability Shader
                              Capability CoreBuiltinsARM
                              Extension  "SPV_ARM_core_builtins"
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 10 14 15 17 19 21
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 450
                              SourceExtension  "GL_ARM_shader_core_builtins"
                              Name 4  "main"
                              Name 8  "temp"
                              Name 10  "gl_WarpMaxIDARM"
                              Name 14  "data"
                              Name 15  "gl_CoreIDARM"
                              Name 17  "gl_CoreCountARM"
                              Name 19  "gl_CoreMaxIDARM"
                              Name 21  "gl_WarpIDARM"
                              Decorate 10(gl_WarpMaxIDARM) Flat
                              Decorate 10(gl_WarpMaxIDARM) BuiltIn BuiltInWarpMaxIDARM
                              Decorate 14(data) Location 0
                              Decorate 15(gl_CoreIDARM) Flat
                              Decorate 15(gl_CoreIDARM) BuiltIn CoreIDARM
                              Decorate 17(gl_CoreCountARM) Flat
                              Decorate 17(gl_CoreCountARM) BuiltIn CoreCountARM
                              Decorate 19(gl_CoreMaxIDARM) Flat
                              Decorate 19(gl_CoreMaxIDARM) BuiltIn CoreMaxIDARM
                              Decorate 21(gl_WarpIDARM) Flat
                              Decorate 21(gl_WarpIDARM) BuiltIn WarpIDARM
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 0
               7:             TypePointer Function 6(int)
               9:             TypePointer Input 6(int)
10(gl_WarpMaxIDARM):      9(ptr) Variable Input
              12:             TypeVector 6(int) 4
              13:             TypePointer Output 12(ivec4)
        14(data):     13(ptr) Variable Output
15(gl_CoreIDARM):      9(ptr) Variable Input
17(gl_CoreCountARM):      9(ptr) Variable Input
19(gl_CoreMaxIDARM):      9(ptr) Variable Input
21(gl_WarpIDARM):      9(ptr) Variable Input
         4(main):           2 Function None 3
               5:             Label
         8(temp):      7(ptr) Variable Function
              11:      6(int) Load 10(gl_WarpMaxIDARM)
                              Store 8(temp) 11
              16:      6(int) Load 15(gl_CoreIDARM)
              18:      6(int) Load 17(gl_CoreCountARM)
              20:      6(int) Load 19(gl_CoreMaxIDARM)
              22:      6(int) Load 21(gl_WarpIDARM)
              23:      6(int) Load 8(temp)
              24:      6(int) IAdd 22 23
              25:   12(ivec4) CompositeConstruct 16 18 20 24
                              Store 14(data) 25
                              Return
                              FunctionEnd
