openframeworks / openFrameworks

openFrameworks is a community-developed cross platform toolkit for creative coding in C++.
http://openframeworks.cc
Other
9.88k stars 2.56k forks source link

Xcode debugger very slow when glm::vec objects in scope #5812

Closed armadillu closed 6 years ago

armadillu commented 6 years ago

Im finding Xcode debugging parts of code that have lots of glm::vecX objects (i.e. a vector of several hundreds of glm::vec3) almost impossible. When the debugger stops, Xcode tries to fill in the values for each glm::vec3 object in scope and it takes several seconds for each one. This means every breakpoint leaves the debugger unresponsive for 40+ seconds in my case.

I've been trying to reduce this lag by decrementing complexity in the glm::vec objects; I see GLM_FORCE_SWIZZLE implements tons of union data/structs, which seems to be part of the cause.

I've tried removing the #define GLM_FORCE_SWIZZLE from ofConstants.h, which lead to lots of compile errors (basically each .xyz() or similar call). There's around 50 lines which rely on GLM_FORCE_SWIZZLE; I've changed them to not use the swizzle syntax, and I find the debugger much much faster, back to being usable basically.

The changes (not from current master, from an older version July 10th 2017) can be seen here https://github.com/local-projects/openFrameworks/commit/d95f7d054267ccc0bec42b4eccf68d39c407909d

The overhead becomes obvious when printing a glm::vec3 object from lldb command line (sorry for massive scrolling, but I want to make the difference real clear);

Without #define GLM_FORCE_SWIZZLE

(lldb) p pos
(glm::vec3) $0 = {
   = {
     = (x = 0, y = 1, z = 1)
     = (r = 0, g = 1, b = 1)
     = (s = 0, t = 1, p = 1)
  }
}

WITH #define GLM_FORCE_SWIZZLE

(lldb) p pos
(glm::vec3) $0 = {
   = {
     = (x = 0, y = 1, z = 1)
     = (r = 0, g = 1, b = 1)
     = (s = 0, t = 1, p = 1)
     = {
      xx = {
        glm::detail::_swizzle_base2<2, float, glm::precision::packed_highp, 0, 0, -1, -2, 1> = {
          glm::detail::_swizzle_base1<2, float, glm::precision::packed_highp, 0, 0, -1, -2, false> = {
            glm::detail::_swizzle_base0<float, 2> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xy = {
        glm::detail::_swizzle_base2<2, float, glm::precision::packed_highp, 0, 1, -1, -2, 0> = {
          glm::detail::_swizzle_base1<2, float, glm::precision::packed_highp, 0, 1, -1, -2, false> = {
            glm::detail::_swizzle_base0<float, 2> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xz = {
        glm::detail::_swizzle_base2<2, float, glm::precision::packed_highp, 0, 2, -1, -2, 0> = {
          glm::detail::_swizzle_base1<2, float, glm::precision::packed_highp, 0, 2, -1, -2, false> = {
            glm::detail::_swizzle_base0<float, 2> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yx = {
        glm::detail::_swizzle_base2<2, float, glm::precision::packed_highp, 1, 0, -1, -2, 0> = {
          glm::detail::_swizzle_base1<2, float, glm::precision::packed_highp, 1, 0, -1, -2, false> = {
            glm::detail::_swizzle_base0<float, 2> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yy = {
        glm::detail::_swizzle_base2<2, float, glm::precision::packed_highp, 1, 1, -1, -2, 1> = {
          glm::detail::_swizzle_base1<2, float, glm::precision::packed_highp, 1, 1, -1, -2, false> = {
            glm::detail::_swizzle_base0<float, 2> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yz = {
        glm::detail::_swizzle_base2<2, float, glm::precision::packed_highp, 1, 2, -1, -2, 0> = {
          glm::detail::_swizzle_base1<2, float, glm::precision::packed_highp, 1, 2, -1, -2, false> = {
            glm::detail::_swizzle_base0<float, 2> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zx = {
        glm::detail::_swizzle_base2<2, float, glm::precision::packed_highp, 2, 0, -1, -2, 0> = {
          glm::detail::_swizzle_base1<2, float, glm::precision::packed_highp, 2, 0, -1, -2, false> = {
            glm::detail::_swizzle_base0<float, 2> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zy = {
        glm::detail::_swizzle_base2<2, float, glm::precision::packed_highp, 2, 1, -1, -2, 0> = {
          glm::detail::_swizzle_base1<2, float, glm::precision::packed_highp, 2, 1, -1, -2, false> = {
            glm::detail::_swizzle_base0<float, 2> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zz = {
        glm::detail::_swizzle_base2<2, float, glm::precision::packed_highp, 2, 2, -1, -2, 1> = {
          glm::detail::_swizzle_base1<2, float, glm::precision::packed_highp, 2, 2, -1, -2, false> = {
            glm::detail::_swizzle_base0<float, 2> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rr = {
        glm::detail::_swizzle_base2<2, float, glm::precision::packed_highp, 0, 0, -1, -2, 1> = {
          glm::detail::_swizzle_base1<2, float, glm::precision::packed_highp, 0, 0, -1, -2, false> = {
            glm::detail::_swizzle_base0<float, 2> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rg = {
        glm::detail::_swizzle_base2<2, float, glm::precision::packed_highp, 0, 1, -1, -2, 0> = {
          glm::detail::_swizzle_base1<2, float, glm::precision::packed_highp, 0, 1, -1, -2, false> = {
            glm::detail::_swizzle_base0<float, 2> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rb = {
        glm::detail::_swizzle_base2<2, float, glm::precision::packed_highp, 0, 2, -1, -2, 0> = {
          glm::detail::_swizzle_base1<2, float, glm::precision::packed_highp, 0, 2, -1, -2, false> = {
            glm::detail::_swizzle_base0<float, 2> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      gr = {
        glm::detail::_swizzle_base2<2, float, glm::precision::packed_highp, 1, 0, -1, -2, 0> = {
          glm::detail::_swizzle_base1<2, float, glm::precision::packed_highp, 1, 0, -1, -2, false> = {
            glm::detail::_swizzle_base0<float, 2> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      gg = {
        glm::detail::_swizzle_base2<2, float, glm::precision::packed_highp, 1, 1, -1, -2, 1> = {
          glm::detail::_swizzle_base1<2, float, glm::precision::packed_highp, 1, 1, -1, -2, false> = {
            glm::detail::_swizzle_base0<float, 2> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      gb = {
        glm::detail::_swizzle_base2<2, float, glm::precision::packed_highp, 1, 2, -1, -2, 0> = {
          glm::detail::_swizzle_base1<2, float, glm::precision::packed_highp, 1, 2, -1, -2, false> = {
            glm::detail::_swizzle_base0<float, 2> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      br = {
        glm::detail::_swizzle_base2<2, float, glm::precision::packed_highp, 2, 0, -1, -2, 0> = {
          glm::detail::_swizzle_base1<2, float, glm::precision::packed_highp, 2, 0, -1, -2, false> = {
            glm::detail::_swizzle_base0<float, 2> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      bg = {
        glm::detail::_swizzle_base2<2, float, glm::precision::packed_highp, 2, 1, -1, -2, 0> = {
          glm::detail::_swizzle_base1<2, float, glm::precision::packed_highp, 2, 1, -1, -2, false> = {
            glm::detail::_swizzle_base0<float, 2> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      bb = {
        glm::detail::_swizzle_base2<2, float, glm::precision::packed_highp, 2, 2, -1, -2, 1> = {
          glm::detail::_swizzle_base1<2, float, glm::precision::packed_highp, 2, 2, -1, -2, false> = {
            glm::detail::_swizzle_base0<float, 2> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      ss = {
        glm::detail::_swizzle_base2<2, float, glm::precision::packed_highp, 0, 0, -1, -2, 1> = {
          glm::detail::_swizzle_base1<2, float, glm::precision::packed_highp, 0, 0, -1, -2, false> = {
            glm::detail::_swizzle_base0<float, 2> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      st = {
        glm::detail::_swizzle_base2<2, float, glm::precision::packed_highp, 0, 1, -1, -2, 0> = {
          glm::detail::_swizzle_base1<2, float, glm::precision::packed_highp, 0, 1, -1, -2, false> = {
            glm::detail::_swizzle_base0<float, 2> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      sp = {
        glm::detail::_swizzle_base2<2, float, glm::precision::packed_highp, 0, 2, -1, -2, 0> = {
          glm::detail::_swizzle_base1<2, float, glm::precision::packed_highp, 0, 2, -1, -2, false> = {
            glm::detail::_swizzle_base0<float, 2> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      ts = {
        glm::detail::_swizzle_base2<2, float, glm::precision::packed_highp, 1, 0, -1, -2, 0> = {
          glm::detail::_swizzle_base1<2, float, glm::precision::packed_highp, 1, 0, -1, -2, false> = {
            glm::detail::_swizzle_base0<float, 2> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      tt = {
        glm::detail::_swizzle_base2<2, float, glm::precision::packed_highp, 1, 1, -1, -2, 1> = {
          glm::detail::_swizzle_base1<2, float, glm::precision::packed_highp, 1, 1, -1, -2, false> = {
            glm::detail::_swizzle_base0<float, 2> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      tp = {
        glm::detail::_swizzle_base2<2, float, glm::precision::packed_highp, 1, 2, -1, -2, 0> = {
          glm::detail::_swizzle_base1<2, float, glm::precision::packed_highp, 1, 2, -1, -2, false> = {
            glm::detail::_swizzle_base0<float, 2> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      ps = {
        glm::detail::_swizzle_base2<2, float, glm::precision::packed_highp, 2, 0, -1, -2, 0> = {
          glm::detail::_swizzle_base1<2, float, glm::precision::packed_highp, 2, 0, -1, -2, false> = {
            glm::detail::_swizzle_base0<float, 2> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      pt = {
        glm::detail::_swizzle_base2<2, float, glm::precision::packed_highp, 2, 1, -1, -2, 0> = {
          glm::detail::_swizzle_base1<2, float, glm::precision::packed_highp, 2, 1, -1, -2, false> = {
            glm::detail::_swizzle_base0<float, 2> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      pp = {
        glm::detail::_swizzle_base2<2, float, glm::precision::packed_highp, 2, 2, -1, -2, 1> = {
          glm::detail::_swizzle_base1<2, float, glm::precision::packed_highp, 2, 2, -1, -2, false> = {
            glm::detail::_swizzle_base0<float, 2> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xxx = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 0, 0, 0, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 0, 0, 0, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xxy = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 0, 0, 1, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 0, 0, 1, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xxz = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 0, 0, 2, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 0, 0, 2, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xyx = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 0, 1, 0, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 0, 1, 0, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xyy = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 0, 1, 1, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 0, 1, 1, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xyz = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 0, 1, 2, -1, 0> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 0, 1, 2, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xzx = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 0, 2, 0, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 0, 2, 0, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xzy = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 0, 2, 1, -1, 0> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 0, 2, 1, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xzz = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 0, 2, 2, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 0, 2, 2, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yxx = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 1, 0, 0, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 1, 0, 0, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yxy = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 1, 0, 1, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 1, 0, 1, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yxz = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 1, 0, 2, -1, 0> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 1, 0, 2, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yyx = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 1, 1, 0, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 1, 1, 0, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yyy = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 1, 1, 1, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 1, 1, 1, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yyz = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 1, 1, 2, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 1, 1, 2, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yzx = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 1, 2, 0, -1, 0> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 1, 2, 0, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yzy = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 1, 2, 1, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 1, 2, 1, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yzz = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 1, 2, 2, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 1, 2, 2, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zxx = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 2, 0, 0, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 2, 0, 0, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zxy = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 2, 0, 1, -1, 0> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 2, 0, 1, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zxz = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 2, 0, 2, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 2, 0, 2, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zyx = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 2, 1, 0, -1, 0> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 2, 1, 0, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zyy = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 2, 1, 1, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 2, 1, 1, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zyz = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 2, 1, 2, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 2, 1, 2, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zzx = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 2, 2, 0, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 2, 2, 0, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zzy = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 2, 2, 1, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 2, 2, 1, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zzz = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 2, 2, 2, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 2, 2, 2, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rrr = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 0, 0, 0, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 0, 0, 0, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rrg = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 0, 0, 1, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 0, 0, 1, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rrb = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 0, 0, 2, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 0, 0, 2, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rgr = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 0, 1, 0, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 0, 1, 0, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rgg = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 0, 1, 1, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 0, 1, 1, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rgb = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 0, 1, 2, -1, 0> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 0, 1, 2, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rbr = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 0, 2, 0, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 0, 2, 0, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rbg = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 0, 2, 1, -1, 0> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 0, 2, 1, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rbb = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 0, 2, 2, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 0, 2, 2, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      grr = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 1, 0, 0, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 1, 0, 0, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      grg = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 1, 0, 1, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 1, 0, 1, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      grb = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 1, 0, 2, -1, 0> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 1, 0, 2, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      ggr = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 1, 1, 0, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 1, 1, 0, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      ggg = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 1, 1, 1, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 1, 1, 1, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      ggb = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 1, 1, 2, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 1, 1, 2, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      gbr = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 1, 2, 0, -1, 0> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 1, 2, 0, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      gbg = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 1, 2, 1, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 1, 2, 1, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      gbb = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 1, 2, 2, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 1, 2, 2, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      brr = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 2, 0, 0, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 2, 0, 0, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      brg = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 2, 0, 1, -1, 0> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 2, 0, 1, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      brb = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 2, 0, 2, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 2, 0, 2, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      bgr = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 2, 1, 0, -1, 0> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 2, 1, 0, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      bgg = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 2, 1, 1, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 2, 1, 1, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      bgb = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 2, 1, 2, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 2, 1, 2, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      bbr = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 2, 2, 0, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 2, 2, 0, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      bbg = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 2, 2, 1, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 2, 2, 1, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      bbb = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 2, 2, 2, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 2, 2, 2, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      sss = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 0, 0, 0, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 0, 0, 0, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      sst = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 0, 0, 1, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 0, 0, 1, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      ssp = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 0, 0, 2, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 0, 0, 2, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      sts = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 0, 1, 0, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 0, 1, 0, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      stt = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 0, 1, 1, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 0, 1, 1, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      stp = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 0, 1, 2, -1, 0> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 0, 1, 2, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      sps = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 0, 2, 0, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 0, 2, 0, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      spt = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 0, 2, 1, -1, 0> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 0, 2, 1, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      spp = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 0, 2, 2, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 0, 2, 2, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      tss = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 1, 0, 0, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 1, 0, 0, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      tst = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 1, 0, 1, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 1, 0, 1, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      tsp = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 1, 0, 2, -1, 0> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 1, 0, 2, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      tts = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 1, 1, 0, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 1, 1, 0, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      ttt = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 1, 1, 1, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 1, 1, 1, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      ttp = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 1, 1, 2, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 1, 1, 2, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      tps = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 1, 2, 0, -1, 0> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 1, 2, 0, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      tpt = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 1, 2, 1, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 1, 2, 1, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      tpp = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 1, 2, 2, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 1, 2, 2, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      pss = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 2, 0, 0, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 2, 0, 0, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      pst = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 2, 0, 1, -1, 0> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 2, 0, 1, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      psp = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 2, 0, 2, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 2, 0, 2, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      pts = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 2, 1, 0, -1, 0> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 2, 1, 0, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      ptt = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 2, 1, 1, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 2, 1, 1, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      ptp = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 2, 1, 2, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 2, 1, 2, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      pps = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 2, 2, 0, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 2, 2, 0, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      ppt = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 2, 2, 1, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 2, 2, 1, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      ppp = {
        glm::detail::_swizzle_base2<3, float, glm::precision::packed_highp, 2, 2, 2, -1, 1> = {
          glm::detail::_swizzle_base1<3, float, glm::precision::packed_highp, 2, 2, 2, -1, false> = {
            glm::detail::_swizzle_base0<float, 3> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xxxx = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 0, 0, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 0, 0, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xxxy = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 0, 0, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 0, 0, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xxxz = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 0, 0, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 0, 0, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xxyx = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 0, 1, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 0, 1, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xxyy = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 0, 1, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 0, 1, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xxyz = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 0, 1, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 0, 1, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xxzx = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 0, 2, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 0, 2, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xxzy = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 0, 2, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 0, 2, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xxzz = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 0, 2, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 0, 2, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xyxx = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 1, 0, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 1, 0, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xyxy = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 1, 0, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 1, 0, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xyxz = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 1, 0, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 1, 0, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xyyx = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 1, 1, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 1, 1, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xyyy = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 1, 1, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 1, 1, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xyyz = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 1, 1, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 1, 1, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xyzx = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 1, 2, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 1, 2, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xyzy = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 1, 2, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 1, 2, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xyzz = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 1, 2, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 1, 2, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xzxx = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 2, 0, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 2, 0, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xzxy = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 2, 0, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 2, 0, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xzxz = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 2, 0, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 2, 0, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xzyx = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 2, 1, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 2, 1, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xzyy = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 2, 1, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 2, 1, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xzyz = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 2, 1, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 2, 1, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xzzx = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 2, 2, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 2, 2, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xzzy = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 2, 2, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 2, 2, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      xzzz = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 2, 2, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 2, 2, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yxxx = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 0, 0, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 0, 0, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yxxy = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 0, 0, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 0, 0, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yxxz = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 0, 0, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 0, 0, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yxyx = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 0, 1, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 0, 1, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yxyy = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 0, 1, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 0, 1, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yxyz = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 0, 1, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 0, 1, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yxzx = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 0, 2, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 0, 2, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yxzy = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 0, 2, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 0, 2, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yxzz = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 0, 2, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 0, 2, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yyxx = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 1, 0, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 1, 0, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yyxy = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 1, 0, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 1, 0, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yyxz = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 1, 0, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 1, 0, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yyyx = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 1, 1, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 1, 1, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yyyy = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 1, 1, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 1, 1, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yyyz = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 1, 1, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 1, 1, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yyzx = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 1, 2, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 1, 2, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yyzy = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 1, 2, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 1, 2, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yyzz = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 1, 2, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 1, 2, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yzxx = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 2, 0, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 2, 0, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yzxy = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 2, 0, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 2, 0, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yzxz = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 2, 0, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 2, 0, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yzyx = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 2, 1, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 2, 1, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yzyy = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 2, 1, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 2, 1, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yzyz = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 2, 1, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 2, 1, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yzzx = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 2, 2, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 2, 2, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yzzy = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 2, 2, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 2, 2, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      yzzz = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 2, 2, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 2, 2, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zxxx = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 0, 0, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 0, 0, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zxxy = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 0, 0, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 0, 0, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zxxz = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 0, 0, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 0, 0, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zxyx = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 0, 1, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 0, 1, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zxyy = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 0, 1, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 0, 1, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zxyz = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 0, 1, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 0, 1, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zxzx = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 0, 2, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 0, 2, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zxzy = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 0, 2, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 0, 2, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zxzz = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 0, 2, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 0, 2, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zyxx = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 1, 0, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 1, 0, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zyxy = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 1, 0, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 1, 0, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zyxz = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 1, 0, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 1, 0, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zyyx = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 1, 1, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 1, 1, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zyyy = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 1, 1, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 1, 1, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zyyz = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 1, 1, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 1, 1, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zyzx = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 1, 2, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 1, 2, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zyzy = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 1, 2, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 1, 2, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zyzz = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 1, 2, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 1, 2, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zzxx = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 2, 0, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 2, 0, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zzxy = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 2, 0, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 2, 0, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zzxz = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 2, 0, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 2, 0, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zzyx = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 2, 1, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 2, 1, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zzyy = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 2, 1, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 2, 1, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zzyz = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 2, 1, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 2, 1, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zzzx = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 2, 2, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 2, 2, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zzzy = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 2, 2, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 2, 2, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      zzzz = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 2, 2, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 2, 2, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rrrr = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 0, 0, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 0, 0, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rrrg = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 0, 0, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 0, 0, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rrrb = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 0, 0, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 0, 0, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rrgr = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 0, 1, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 0, 1, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rrgg = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 0, 1, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 0, 1, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rrgb = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 0, 1, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 0, 1, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rrbr = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 0, 2, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 0, 2, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rrbg = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 0, 2, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 0, 2, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rrbb = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 0, 2, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 0, 2, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rgrr = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 1, 0, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 1, 0, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rgrg = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 1, 0, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 1, 0, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rgrb = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 1, 0, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 1, 0, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rggr = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 1, 1, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 1, 1, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rggg = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 1, 1, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 1, 1, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rggb = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 1, 1, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 1, 1, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rgbr = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 1, 2, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 1, 2, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rgbg = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 1, 2, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 1, 2, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rgbb = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 1, 2, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 1, 2, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rbrr = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 2, 0, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 2, 0, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rbrg = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 2, 0, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 2, 0, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rbrb = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 2, 0, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 2, 0, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rbgr = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 2, 1, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 2, 1, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rbgg = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 2, 1, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 2, 1, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rbgb = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 2, 1, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 2, 1, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rbbr = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 2, 2, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 2, 2, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rbbg = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 2, 2, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 2, 2, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      rbbb = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 0, 2, 2, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 0, 2, 2, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      grrr = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 0, 0, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 0, 0, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      grrg = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 0, 0, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 0, 0, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      grrb = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 0, 0, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 0, 0, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      grgr = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 0, 1, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 0, 1, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      grgg = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 0, 1, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 0, 1, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      grgb = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 0, 1, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 0, 1, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      grbr = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 0, 2, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 0, 2, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      grbg = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 0, 2, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 0, 2, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      grbb = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 0, 2, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 0, 2, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      ggrr = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 1, 0, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 1, 0, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      ggrg = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 1, 0, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 1, 0, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      ggrb = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 1, 0, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 1, 0, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      gggr = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 1, 1, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 1, 1, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      gggg = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 1, 1, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 1, 1, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      gggb = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 1, 1, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 1, 1, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      ggbr = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 1, 2, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 1, 2, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      ggbg = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 1, 2, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 1, 2, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      ggbb = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 1, 2, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 1, 2, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      gbrr = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 2, 0, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 2, 0, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      gbrg = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 2, 0, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 2, 0, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      gbrb = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 2, 0, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 2, 0, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      gbgr = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 2, 1, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 2, 1, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      gbgg = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 2, 1, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 2, 1, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      gbgb = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 2, 1, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 2, 1, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      gbbr = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 2, 2, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 2, 2, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      gbbg = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 2, 2, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 2, 2, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      gbbb = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 1, 2, 2, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 1, 2, 2, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      brrr = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 0, 0, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 0, 0, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      brrg = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 0, 0, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 0, 0, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      brrb = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 0, 0, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 0, 0, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      brgr = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 0, 1, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 0, 1, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      brgg = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 0, 1, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 0, 1, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      brgb = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 0, 1, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 0, 1, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      brbr = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 0, 2, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 0, 2, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      brbg = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 0, 2, 1, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 0, 2, 1, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      brbb = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 0, 2, 2, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 0, 2, 2, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
     = {
      bgrr = {
        glm::detail::_swizzle_base2<4, float, glm::precision::packed_highp, 2, 1, 0, 0, 1> = {
          glm::detail::_swizzle_base1<4, float, glm::precision::packed_highp, 2, 1, 0, 0, false> = {
            glm::detail::_swizzle_base0<float, 4> = (_buffer = char [1] @ 0x00007fab51ed9150)
          }
        }
      }
    }
    ...
  }
}

Should we think about dropping GLM_FORCE_SWIZZLE? It's nice to be able to use GLSL syntax on GLM, but the price to pay for this seems too high right now.

I haven't tested performance in other platforms.

armadillu commented 6 years ago

Oh and doing this would would probably help reduce compile times #5731

ofZach commented 6 years ago

I am supportive of changes that improve compile times / debugging / indexing and esp something like this which feels like it's not handicapping people too much (we never had swizzle before).

also there's another way to do swizzle using "glm/gtc/swizzle.hpp" :

https://glm.g-truc.net/0.9.2/api/a00002.html

might be less problematic?