remap.similar_1b.everything.frag
// Module Version 10000
// Generated by (magic number): 80006
// Id's are bound by 24916

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 5663  "main" 4201 4539 3773
                              ExecutionMode 5663 OriginUpperLeft
                              Decorate 4201 Flat
               8:             TypeVoid
            1282:             TypeFunction 8
              12:             TypeInt 32 1
             649:             TypePointer Function 12(int)
              13:             TypeFloat 32
             204:             TypeFunction 13(float) 649(ptr)
             650:             TypePointer Function 13(float)
            2572:   13(float) Constant 0
            2571:     12(int) Constant 0
               9:             TypeBool
             252:   13(float) Constant 1056964608
            2574:     12(int) Constant 1
            2821:   13(float) Constant 1045220557
            2577:     12(int) Constant 2
            2583:     12(int) Constant 4
              26:             TypeVector 12(int) 4
             663:             TypePointer Input 26(ivec4)
            4201:    663(ptr) Variable Input
              11:             TypeInt 32 0
            2573:     11(int) Constant 1
             651:             TypePointer Input 12(int)
            2576:     11(int) Constant 2
            2570:     11(int) Constant 0
              29:             TypeVector 13(float) 4
             666:             TypePointer Output 29(fvec4)
            4539:    666(ptr) Variable Output
             652:             TypePointer Input 13(float)
            3773:    652(ptr) Variable Input
            5663:           8 Function None 1282
           24915:             Label
           18415:    649(ptr) Variable Function
            5786:    649(ptr) Variable Function
            8366:   13(float) Load 3773
            8654:     12(int) ConvertFToS 8366
                              Store 18415 8654
           17256:   13(float) FunctionCall 3782 18415
           14512:   13(float) Load 3773
            7041:     12(int) ConvertFToS 14512
                              Store 5786 7041
           23993:   13(float) FunctionCall 3836 5786
            9180:   13(float) FAdd 17256 23993
           15728:   29(fvec4) CompositeConstruct 9180 9180 9180 9180
                              Store 4539 15728
                              Return
                              FunctionEnd
            3782:   13(float) Function None 204
            6931:    649(ptr) FunctionParameter
           12220:             Label
            4292:    650(ptr) Variable Function
            4298:    649(ptr) Variable Function
                              Store 4292 2572
                              Store 4298 2571
                              Branch 14924
           14924:             Label
                              LoopMerge 6507 6488 None
                              Branch 11857
           11857:             Label
           13755:     12(int) Load 4298
           22731:     12(int) Load 6931
           20007:     9(bool) SLessThan 13755 22731
                              BranchConditional 20007 24750 6507
           24750:               Label
           22912:   13(float)   Load 4292
           19471:   13(float)   FAdd 22912 252
                                Store 4292 19471
                                Branch 6488
            6488:               Label
           19050:     12(int)   Load 4298
            8593:     12(int)   IAdd 19050 2574
                                Store 4298 8593
                                Branch 14924
            6507:             Label
           18877:   13(float) Load 4292
           15899:   13(float) FAdd 18877 2821
                              Store 4292 15899
           20342:   13(float) Load 4292
                              ReturnValue 20342
                              FunctionEnd
            3836:   13(float) Function None 204
            4408:    649(ptr) FunctionParameter
           12143:             Label
           22102:    649(ptr) Variable Function
           24151:     12(int) Load 4408
           13868:     9(bool) SGreaterThan 24151 2577
                              SelectionMerge 22309 None
                              BranchConditional 13868 10822 17416
           10822:               Label
           22680:     12(int)   Load 4408
           23216:     12(int)   IMul 22680 2577
                                Store 22102 23216
            7042:   13(float)   FunctionCall 3782 22102
                                ReturnValue 7042
           17416:               Label
           19506:     12(int)   Load 4408
           22773:     12(int)   IMul 19506 2583
           13472:    651(ptr)   AccessChain 4201 2573
           15280:     12(int)   Load 13472
           18079:    651(ptr)   AccessChain 4201 2576
           15199:     12(int)   Load 18079
            9343:     12(int)   IMul 15280 15199
           11462:     12(int)   IAdd 22773 9343
           11885:    651(ptr)   AccessChain 4201 2570
           21176:     12(int)   Load 11885
           10505:     12(int)   IAdd 11462 21176
           14626:   13(float)   ConvertSToF 10505
                                ReturnValue 14626
           22309:             Label
            6429:   13(float) Undef
                              ReturnValue 6429
                              FunctionEnd
