remap.if.none.frag
// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 25

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 8 17
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 450
                              Name 4  "main"
                              Name 8  "inf"
                              Name 17  "outf4"
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypePointer Input 6(float)
          8(inf):      7(ptr) Variable Input
              10:    6(float) Constant 1073741824
              11:             TypeBool
              15:             TypeVector 6(float) 4
              16:             TypePointer Output 15(fvec4)
       17(outf4):     16(ptr) Variable Output
              22:    6(float) Constant 3204448256
         4(main):           2 Function None 3
               5:             Label
               9:    6(float) Load 8(inf)
              12:    11(bool) FOrdGreaterThan 9 10
                              SelectionMerge 14 None
                              BranchConditional 12 13 20
              13:               Label
              18:    6(float)   Load 8(inf)
              19:   15(fvec4)   CompositeConstruct 18 18 18 18
                                Store 17(outf4) 19
                                Branch 14
              20:               Label
              21:    6(float)   Load 8(inf)
              23:    6(float)   FAdd 21 22
              24:   15(fvec4)   CompositeConstruct 23 23 23 23
                                Store 17(outf4) 24
                                Branch 14
              14:             Label
                              Return
                              FunctionEnd
