hlsl.switch.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:56  Function Definition: PixelShaderFunction(vf4;i1;i1; (global 4-component vector of float)
0:2    Function Parameters: 
0:2      'input' (in 4-component vector of float)
0:2      'c' (in int)
0:2      'd' (in int)
0:?     Sequence
0:3      'c' (in int)
0:7      switch
0:7      condition
0:7        'c' (in int)
0:7      body
0:7        Sequence
0:9          default: 
0:7          Sequence
0:7            Branch: Break
0:12      switch
0:12      condition
0:12        'c' (in int)
0:12      body
0:12        Sequence
0:13          case:  with expression
0:13            Constant:
0:13              1 (const int)
0:?           Sequence
0:14            Pre-Increment (temp 4-component vector of float)
0:14              'input' (in 4-component vector of float)
0:15            Branch: Break
0:16          case:  with expression
0:16            Constant:
0:16              2 (const int)
0:?           Sequence
0:17            Pre-Decrement (temp 4-component vector of float)
0:17              'input' (in 4-component vector of float)
0:18            Branch: Break
0:21      switch
0:21      condition
0:21        'c' (in int)
0:21      body
0:21        Sequence
0:22          case:  with expression
0:22            Constant:
0:22              1 (const int)
0:?           Sequence
0:23            Pre-Increment (temp 4-component vector of float)
0:23              'input' (in 4-component vector of float)
0:24            Branch: Break
0:25          case:  with expression
0:25            Constant:
0:25              2 (const int)
0:?           Sequence
0:26            switch
0:26            condition
0:26              'd' (in int)
0:26            body
0:26              Sequence
0:27                case:  with expression
0:27                  Constant:
0:27                    2 (const int)
0:?                 Sequence
0:28                  add second child into first child (temp 4-component vector of float)
0:28                    'input' (in 4-component vector of float)
0:28                    Constant:
0:28                      2.000000
0:29                  Branch: Break
0:30                case:  with expression
0:30                  Constant:
0:30                    3 (const int)
0:?                 Sequence
0:31                  add second child into first child (temp 4-component vector of float)
0:31                    'input' (in 4-component vector of float)
0:31                    Constant:
0:31                      3.000000
0:32                  Branch: Break
0:34            Branch: Break
0:35          default: 
0:?           Sequence
0:36            add second child into first child (temp 4-component vector of float)
0:36              'input' (in 4-component vector of float)
0:36              Constant:
0:36                4.000000
0:39      switch
0:39      condition
0:39        'c' (in int)
0:39      body
0:39        Sequence
0:40          case:  with expression
0:40            Constant:
0:40              1 (const int)
0:39          Sequence
0:39            Branch: Break
0:43      switch
0:43      condition
0:43        'c' (in int)
0:43      body
0:43        Sequence
0:44          case:  with expression
0:44            Constant:
0:44              1 (const int)
0:45          case:  with expression
0:45            Constant:
0:45              2 (const int)
0:46          case:  with expression
0:46            Constant:
0:46              3 (const int)
0:?           Sequence
0:47            Pre-Increment (temp 4-component vector of float)
0:47              'input' (in 4-component vector of float)
0:48            Branch: Break
0:49          case:  with expression
0:49            Constant:
0:49              4 (const int)
0:50          case:  with expression
0:50            Constant:
0:50              5 (const int)
0:?           Sequence
0:51            Pre-Decrement (temp 4-component vector of float)
0:51              'input' (in 4-component vector of float)
0:54      Branch: Return with expression
0:54        'input' (in 4-component vector of float)
0:?   Linker Objects


Linked fragment stage:


Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:56  Function Definition: PixelShaderFunction(vf4;i1;i1; (global 4-component vector of float)
0:2    Function Parameters: 
0:2      'input' (in 4-component vector of float)
0:2      'c' (in int)
0:2      'd' (in int)
0:?     Sequence
0:3      'c' (in int)
0:7      switch
0:7      condition
0:7        'c' (in int)
0:7      body
0:7        Sequence
0:9          default: 
0:7          Sequence
0:7            Branch: Break
0:12      switch
0:12      condition
0:12        'c' (in int)
0:12      body
0:12        Sequence
0:13          case:  with expression
0:13            Constant:
0:13              1 (const int)
0:?           Sequence
0:14            Pre-Increment (temp 4-component vector of float)
0:14              'input' (in 4-component vector of float)
0:15            Branch: Break
0:16          case:  with expression
0:16            Constant:
0:16              2 (const int)
0:?           Sequence
0:17            Pre-Decrement (temp 4-component vector of float)
0:17              'input' (in 4-component vector of float)
0:18            Branch: Break
0:21      switch
0:21      condition
0:21        'c' (in int)
0:21      body
0:21        Sequence
0:22          case:  with expression
0:22            Constant:
0:22              1 (const int)
0:?           Sequence
0:23            Pre-Increment (temp 4-component vector of float)
0:23              'input' (in 4-component vector of float)
0:24            Branch: Break
0:25          case:  with expression
0:25            Constant:
0:25              2 (const int)
0:?           Sequence
0:26            switch
0:26            condition
0:26              'd' (in int)
0:26            body
0:26              Sequence
0:27                case:  with expression
0:27                  Constant:
0:27                    2 (const int)
0:?                 Sequence
0:28                  add second child into first child (temp 4-component vector of float)
0:28                    'input' (in 4-component vector of float)
0:28                    Constant:
0:28                      2.000000
0:29                  Branch: Break
0:30                case:  with expression
0:30                  Constant:
0:30                    3 (const int)
0:?                 Sequence
0:31                  add second child into first child (temp 4-component vector of float)
0:31                    'input' (in 4-component vector of float)
0:31                    Constant:
0:31                      3.000000
0:32                  Branch: Break
0:34            Branch: Break
0:35          default: 
0:?           Sequence
0:36            add second child into first child (temp 4-component vector of float)
0:36              'input' (in 4-component vector of float)
0:36              Constant:
0:36                4.000000
0:39      switch
0:39      condition
0:39        'c' (in int)
0:39      body
0:39        Sequence
0:40          case:  with expression
0:40            Constant:
0:40              1 (const int)
0:39          Sequence
0:39            Branch: Break
0:43      switch
0:43      condition
0:43        'c' (in int)
0:43      body
0:43        Sequence
0:44          case:  with expression
0:44            Constant:
0:44              1 (const int)
0:45          case:  with expression
0:45            Constant:
0:45              2 (const int)
0:46          case:  with expression
0:46            Constant:
0:46              3 (const int)
0:?           Sequence
0:47            Pre-Increment (temp 4-component vector of float)
0:47              'input' (in 4-component vector of float)
0:48            Branch: Break
0:49          case:  with expression
0:49            Constant:
0:49              4 (const int)
0:50          case:  with expression
0:50            Constant:
0:50              5 (const int)
0:?           Sequence
0:51            Pre-Decrement (temp 4-component vector of float)
0:51              'input' (in 4-component vector of float)
0:54      Branch: Return with expression
0:54        'input' (in 4-component vector of float)
0:?   Linker Objects

// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 82

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "PixelShaderFunction" 8 21 41
                              ExecutionMode 4 OriginUpperLeft
                              Name 4  "PixelShaderFunction"
                              Name 8  "c"
                              Name 21  "input"
                              Name 41  "d"
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
               7:             TypePointer Input 6(int)
            8(c):      7(ptr) Variable Input
              18:             TypeFloat 32
              19:             TypeVector 18(float) 4
              20:             TypePointer Input 19(fvec4)
       21(input):     20(ptr) Variable Input
              23:   18(float) Constant 1065353216
           41(d):      7(ptr) Variable Input
              46:   18(float) Constant 1073741824
              51:   18(float) Constant 1077936128
              58:   18(float) Constant 1082130432
4(PixelShaderFunction):           2 Function None 3
               5:             Label
               9:      6(int) Load 8(c)
                              SelectionMerge 11 None
                              Switch 9 10
              10:               Label
                                Branch 11
              11:             Label
              14:      6(int) Load 8(c)
                              SelectionMerge 17 None
                              Switch 14 17 
                                     case 1: 15
                                     case 2: 16
              15:               Label
              22:   19(fvec4)   Load 21(input)
              24:   19(fvec4)   CompositeConstruct 23 23 23 23
              25:   19(fvec4)   FAdd 22 24
                                Store 21(input) 25
                                Branch 17
              16:               Label
              27:   19(fvec4)   Load 21(input)
              28:   19(fvec4)   CompositeConstruct 23 23 23 23
              29:   19(fvec4)   FSub 27 28
                                Store 21(input) 29
                                Branch 17
              17:             Label
              32:      6(int) Load 8(c)
                              SelectionMerge 36 None
                              Switch 32 35 
                                     case 1: 33
                                     case 2: 34
              35:               Label
              59:   19(fvec4)   Load 21(input)
              60:   19(fvec4)   CompositeConstruct 58 58 58 58
              61:   19(fvec4)   FAdd 59 60
                                Store 21(input) 61
                                Branch 36
              33:               Label
              37:   19(fvec4)   Load 21(input)
              38:   19(fvec4)   CompositeConstruct 23 23 23 23
              39:   19(fvec4)   FAdd 37 38
                                Store 21(input) 39
                                Branch 36
              34:               Label
              42:      6(int)   Load 41(d)
                                SelectionMerge 45 None
                                Switch 42 45 
                                       case 2: 43
                                       case 3: 44
              43:                 Label
              47:   19(fvec4)     Load 21(input)
              48:   19(fvec4)     CompositeConstruct 46 46 46 46
              49:   19(fvec4)     FAdd 47 48
                                  Store 21(input) 49
                                  Branch 45
              44:                 Label
              52:   19(fvec4)     Load 21(input)
              53:   19(fvec4)     CompositeConstruct 51 51 51 51
              54:   19(fvec4)     FAdd 52 53
                                  Store 21(input) 54
                                  Branch 45
              45:               Label
                                Branch 36
              36:             Label
              63:      6(int) Load 8(c)
                              SelectionMerge 65 None
                              Switch 63 65 
                                     case 1: 64
              64:               Label
                                Branch 65
              65:             Label
              68:      6(int) Load 8(c)
                              SelectionMerge 71 None
                              Switch 68 71 
                                     case 1: 69
                                     case 2: 69
                                     case 3: 69
                                     case 4: 70
                                     case 5: 70
              69:               Label
              72:   19(fvec4)   Load 21(input)
              73:   19(fvec4)   CompositeConstruct 23 23 23 23
              74:   19(fvec4)   FAdd 72 73
                                Store 21(input) 74
                                Branch 71
              70:               Label
              76:   19(fvec4)   Load 21(input)
              77:   19(fvec4)   CompositeConstruct 23 23 23 23
              78:   19(fvec4)   FSub 76 77
                                Store 21(input) 78
                                Branch 71
              71:             Label
              80:   19(fvec4) Load 21(input)
                              ReturnValue 80
                              FunctionEnd
