remap.if.everything.frag
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 22855

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 5663  "main" 3773 4539
                              ExecutionMode 5663 OriginUpperLeft
                              Decorate 3773 Location 0
                              Decorate 4539 Location 0
               8:             TypeVoid
            1282:             TypeFunction 8
              13:             TypeFloat 32
             650:             TypePointer Input 13(float)
            3773:    650(ptr) Variable Input
              24:   13(float) Constant 1073741824
               9:             TypeBool
              29:             TypeVector 13(float) 4
             666:             TypePointer Output 29(fvec4)
            4539:    666(ptr) Variable Output
             947:   13(float) Constant 3204448256
            5663:           8 Function None 1282
            7911:             Label
           21734:   13(float) Load 3773
           13508:     9(bool) FOrdGreaterThan 21734 24
                              SelectionMerge 19578 None
                              BranchConditional 13508 13182 10142
           13182:               Label
            9496:   13(float)   Load 3773
           17615:   29(fvec4)   CompositeConstruct 9496 9496 9496 9496
                                Store 4539 17615
                                Branch 19578
           10142:               Label
           22854:   13(float)   Load 3773
            9982:   13(float)   FAdd 22854 947
           12421:   29(fvec4)   CompositeConstruct 9982 9982 9982 9982
                                Store 4539 12421
                                Branch 19578
           19578:             Label
                              Return
                              FunctionEnd
