8 Replies Latest reply on Mar 4, 2010 2:44 PM by hazeman

    CAL++ v. 0.8 release

    hazeman
      C++ to IL generator/compiler with C++ bindings for CAL

      The CAL++ library has been just released. Project homepage is located here http://sourceforge.net/projects/calpp/ .

      The project consist of two main components. One is C++ binding for CAL ( it's really much easier to develop new CAL applications using bindings ) and second is C++ to IL generator/compiler.

      The C++ generator/compiler has syntax very similar to OpenCL ( with few necessary exceptions ). Also it supports all devices which can run CAL kernels ( finally OpenCL like language for 3xxx ).

      It has some advantages over OpenCL compiler. To name few

      - it's much closer to CAL - it allows to write code which is almost as good ( or as good ) as handwritten IL. Look at the matrix multiplication example - it has almost the same ISA as prunedtree original code ( it differs only where I've added some changes ).

      - Advantage of using C++. I really wouldn't like to use double-double ( or quad float ) technique without C++.

      - Powerfull control over loop unroling and code selection ( at IL compilation time ). The C++ language acts like preprocesor.

      - It has LDS support for 4xxx, doubles, etc. And if something is missing it can be added really easy.

      But as always there are some pitfalls to this approach

      - it isn't OpenCL . Having standard is always usefull.

      - Only partial support for structs ( it can be much improved but never as good as OpenCL ).

      - CAL++ is much closer to IL and some more knowledge about IL is required to achive full potential ( hmmm I think this is also the case with OpenCL ).

      - optimization is only performed by CAL IL compiler ( which isn't that good ).

      With the library there are some examples included. I think the fastest matrix multiplication might be a small gem here .

      I hope that CAL++ will be usefull to someone .

       

        • CAL++ v. 0.8 release
          oscarbarenys1

          Many thanks for sharing it!

          Some questions:

          1. Have you tested on Windows?

          2. Also have you added 24 bit integer instructions?

          they are useful for getting thread id fast for example..

          using mad24 in OpenCL doesn't generate 5xxx assembly for it.. a problem is they aren't aren't exposed in AMD IL v2 (only shown in 5xxx assembly language).. are they hard to add to CAL++?

          Please see that post.. http://forums.amd.com/devforum/messageview.cfm?catid=390&threadid=125665

          I'm thinking how hard is to add also GDS?

          Last I have found

          " It cannot be compiled at the time as it depends on some CAL Vector/Matrix classes which aren't available for public use."

           are this AMD NDA code or is your own code?

          are you using any magic in it? or I can code some wrappers?..

           

            • CAL++ v. 0.8 release
              hazeman

               

              Originally posted by: oscarbarenys1

               

              1. Have you tested on Windows?

              No. But with the exception to C++ compiler problems it should work ( there is nothing platform specific in the code ).

              2. Also have you added 24 bit integer instructions? they are useful for getting thread id fast for example..

              CAL++ is converting code to IL. So 24 operations need to be available in CAL IL. And unfortunatelly it isn't the case.

              I'm thinking how hard is to add also GDS?

              Using anything that isn't available in IL is really hard ( or close to impossible ).

              When CAL supported ISA assembler compilation ( 3xxx family ) you could generate ISA ASM. I would call it really, really hard as you need to be aware of many architecture limits ( and those informations simply aren't available ).

              But for 4xxx, 5xxx family to use ISA requires to write your own driver stack ( as CAL doesn't support asm any more ) - I think it's simply impossible at the moment.

              " It cannot be compiled at the time as it depends on some CAL Vector/Matrix classes which aren't available for public use."  are this AMD NDA code or is your own code?

              It's my own code, but it's far from being ready. For vectorquantization example is can be easily replaced by Image2D with simple functions to fill data.

              are you using any magic in it? or I can code some wrappers?..

              The Matrix/Vector code is using a little bit of magic . Any vector/matrix expression ( like vec_a = 3*vec_b + vec_c + log(vec_d) ) is converted to proper kernel ( trick with using templates for delayed execution ) and executed on gpu. It saves a lot of time with writing custom kernels .

               

               

               

               

            • CAL++ v. 0.8 release
              mikeaclark

              Hi,

              I have been trying to compile this on Ubuntu 9.1 x86_64, Catalyst 10.2, Stream SDK 2.01, but no luck.  When typing make I get all sorts of error messages (see attachment).  Any advice here would be greatly appreciated.

              Thanks,

              Mike.

              [ 33%] Building CXX object examples/CMakeFiles/coalescingtest.dir/coalescingtest.cpp.o In file included from /home/mikec/calpp-0.8/include/cal/il/cal_il.hpp:29, from /home/mikec/calpp-0.8/examples/coalescingtest.cpp:25: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type> >, T = cal::il::uint4_type]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:507: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&, const cal::il::detail::expression<E2>&, const cal::il::detail::expression<E3>&, const cal::il::detail::expression<E4>&) [with E1 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E3 = cal::il::variable<cal::il::uint_type>, E4 = cal::il::variable<cal::il::uint_type>, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flat2d.hpp:66: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:474: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint_type]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:491: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&) [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flat2d.hpp:72: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:474: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint_type]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:491: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&) [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flat2d.hpp:73: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:474: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type> >, T = cal::il::uint4_type]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:507: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&, const cal::il::detail::expression<E2>&, const cal::il::detail::expression<E3>&, const cal::il::detail::expression<E4>&) [with E1 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E3 = cal::il::variable<cal::il::uint_type>, E4 = cal::il::variable<cal::il::uint_type>, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flat2d.hpp:95: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:474: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type> >, T = cal::il::uint4_type]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:507: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&, const cal::il::detail::expression<E2>&, const cal::il::detail::expression<E3>&, const cal::il::detail::expression<E4>&) [with E1 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E3 = cal::il::variable<cal::il::uint_type>, E4 = cal::il::variable<cal::il::uint_type>, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flat2d.hpp:109: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:474: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint_type]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:491: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&) [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flat2d.hpp:115: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:474: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint_type]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:491: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&) [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flat2d.hpp:116: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:474: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mul<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_add<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint2_type]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:498: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&, const cal::il::detail::expression<E2>&) [with E1 = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mul<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_add<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint2_type]’ /home/mikec/calpp-0.8/examples/coalescingtest.cpp:48: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mul<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_add<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:474: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::unary<cal::il::variable<cal::il::uint2_type>, cal::il::detail::cal_unary_cast<cal::il::float2_type, cal::il::uint2_type> >, T = cal::il::float2_type]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:548: instantiated from ‘cal::il::variable<T>& cal::il::variable<T>::operator=(const cal::il::detail::expression<E1>&) [with E = cal::il::detail::unary<cal::il::variable<cal::il::uint2_type>, cal::il::detail::cal_unary_cast<cal::il::float2_type, cal::il::uint2_type> >, T = cal::il::float2_type]’ /home/mikec/calpp-0.8/examples/coalescingtest.cpp:49: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::unary<cal::il::variable<cal::il::uint2_type>, cal::il::detail::cal_unary_cast<cal::il::float2_type, cal::il::uint2_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:474: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::variable<cal::il::float4_type>, cal::il::detail::input_expression<cal::il::float4_type, cal::il::variable<cal::il::float2_type>, 2>, cal::il::detail::cal_binary_add<cal::il::float4_type, cal::il::float4_type> >, T = cal::il::float4_type]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:548: instantiated from ‘cal::il::variable<T>& cal::il::variable<T>::operator=(const cal::il::detail::expression<E1>&) [with E = cal::il::detail::binary<cal::il::variable<cal::il::float4_type>, cal::il::detail::input_expression<cal::il::float4_type, cal::il::variable<cal::il::float2_type>, 2>, cal::il::detail::cal_binary_add<cal::il::float4_type, cal::il::float4_type> >, T = cal::il::float4_type]’ /home/mikec/calpp-0.8/examples/coalescingtest.cpp:59: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::variable<cal::il::float4_type>, cal::il::detail::input_expression<cal::il::float4_type, cal::il::variable<cal::il::float2_type>, 2>, cal::il::detail::cal_binary_add<cal::il::float4_type, cal::il::float4_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:474: error: within this context In file included from /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:29, from /home/mikec/calpp-0.8/include/cal/il/cal_il.hpp:28, from /home/mikec/calpp-0.8/examples/coalescingtest.cpp:25: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::detail::swizzle<E, P0, P1, P2, P3>::iEmitCode(const E1&) const [with E1 = cal::il::detail::binary<cal::il::detail::swizzle<cal::il::variable<cal::il::float2_type>, 1, 0, 0, 0>, cal::il::variable<cal::il::float_type>, cal::il::detail::cal_binary_add<cal::il::float_type, cal::il::float_type> >, E = cal::il::variable<cal::il::float2_type>, int P0 = 1, int P1 = 0, int P2 = 0, int P3 = 0]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:107: instantiated from ‘cal::il::detail::swizzle<E, P0, P1, P2, P3>& cal::il::detail::swizzle<E, P0, P1, P2, P3>::operator=(const cal::il::detail::expression<E1>&) [with E1 = cal::il::detail::binary<cal::il::detail::swizzle<cal::il::variable<cal::il::float2_type>, 1, 0, 0, 0>, cal::il::variable<cal::il::float_type>, cal::il::detail::cal_binary_add<cal::il::float_type, cal::il::float_type> >, E = cal::il::variable<cal::il::float2_type>, int P0 = 1, int P1 = 0, int P2 = 0, int P3 = 0]’ /home/mikec/calpp-0.8/examples/coalescingtest.cpp:60: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::detail::swizzle<cal::il::variable<cal::il::float2_type>, 1, 0, 0, 0>, cal::il::variable<cal::il::float_type>, cal::il::detail::cal_binary_add<cal::il::float_type, cal::il::float_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:60: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::detail::swizzle<E, P0, P1, P2, P3>::iEmitCode(const E1&) const [with E1 = cal::il::detail::binary<cal::il::detail::swizzle<cal::il::variable<cal::il::float2_type>, 2, 0, 0, 0>, cal::il::variable<cal::il::float_type>, cal::il::detail::cal_binary_add<cal::il::float_type, cal::il::float_type> >, E = cal::il::variable<cal::il::float2_type>, int P0 = 2, int P1 = 0, int P2 = 0, int P3 = 0]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:107: instantiated from ‘cal::il::detail::swizzle<E, P0, P1, P2, P3>& cal::il::detail::swizzle<E, P0, P1, P2, P3>::operator=(const cal::il::detail::expression<E1>&) [with E1 = cal::il::detail::binary<cal::il::detail::swizzle<cal::il::variable<cal::il::float2_type>, 2, 0, 0, 0>, cal::il::variable<cal::il::float_type>, cal::il::detail::cal_binary_add<cal::il::float_type, cal::il::float_type> >, E = cal::il::variable<cal::il::float2_type>, int P0 = 2, int P1 = 0, int P2 = 0, int P3 = 0]’ /home/mikec/calpp-0.8/examples/coalescingtest.cpp:62: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::detail::swizzle<cal::il::variable<cal::il::float2_type>, 2, 0, 0, 0>, cal::il::variable<cal::il::float_type>, cal::il::detail::cal_binary_add<cal::il::float_type, cal::il::float_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:60: error: within this context In file included from /home/mikec/calpp-0.8/include/cal/il/cal_il.hpp:29, from /home/mikec/calpp-0.8/examples/coalescingtest.cpp:25: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_sub<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint_type]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:548: instantiated from ‘cal::il::variable<T>& cal::il::variable<T>::operator=(const cal::il::detail::expression<E1>&) [with E = cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_sub<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint_type]’ /home/mikec/calpp-0.8/examples/coalescingtest.cpp:65: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_sub<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:474: error: within this context In file included from /home/mikec/calpp-0.8/include/cal/il/cal_il.hpp:29, from /home/mikec/calpp-0.8/examples/coalescingtest.cpp:25: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::detail::indexed_expression<T, E>::iEmitCode(const E1&) const [with E1 = cal::il::variable<cal::il::float4_type>, T = cal::il::float4_type, E = cal::il::named_variable<cal::il::variable<cal::il::uint_type> >]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:145: instantiated from ‘cal::il::detail::indexed_expression<T, E>& cal::il::detail::indexed_expression<T, E>::operator=(const cal::il::detail::expression<E1>&) [with E1 = cal::il::variable<cal::il::float4_type>, T = cal::il::float4_type, E = cal::il::named_variable<cal::il::variable<cal::il::uint_type> >]’ /home/mikec/calpp-0.8/examples/coalescingtest.cpp:70: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::variable<cal::il::float4_type>]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:104: error: within this context In file included from /home/mikec/calpp-0.8/include/cal/il/cal_il.hpp:28, from /home/mikec/calpp-0.8/examples/coalescingtest.cpp:25: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::detail::binary<E1, E2, F>::emitCode(cal::il::Source&, std::ostream&) const [with E1 = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, F = cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type>]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:473: instantiated from ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type> >, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:507: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&, const cal::il::detail::expression<E2>&, const cal::il::detail::expression<E3>&, const cal::il::detail::expression<E4>&) [with E1 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E3 = cal::il::variable<cal::il::uint_type>, E4 = cal::il::variable<cal::il::uint_type>, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flat2d.hpp:66: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:473: instantiated from ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type> >, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:507: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&, const cal::il::detail::expression<E2>&, const cal::il::detail::expression<E3>&, const cal::il::detail::expression<E4>&) [with E1 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E3 = cal::il::variable<cal::il::uint_type>, E4 = cal::il::variable<cal::il::uint_type>, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flat2d.hpp:66: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::detail::binary<E1, E2, F>::emitCode(cal::il::Source&, std::ostream&) const [with E1 = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, F = cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type>]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:473: instantiated from ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type> >, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:507: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&, const cal::il::detail::expression<E2>&, const cal::il::detail::expression<E3>&, const cal::il::detail::expression<E4>&) [with E1 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E3 = cal::il::variable<cal::il::uint_type>, E4 = cal::il::variable<cal::il::uint_type>, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flat2d.hpp:95: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:473: instantiated from ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type> >, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:507: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&, const cal::il::detail::expression<E2>&, const cal::il::detail::expression<E3>&, const cal::il::detail::expression<E4>&) [with E1 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E3 = cal::il::variable<cal::il::uint_type>, E4 = cal::il::variable<cal::il::uint_type>, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flat2d.hpp:95: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::detail::binary<E1, E2, F>::emitCode(cal::il::Source&, std::ostream&) const [with E1 = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, F = cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type>]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:473: instantiated from ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type> >, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:507: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&, const cal::il::detail::expression<E2>&, const cal::il::detail::expression<E3>&, const cal::il::detail::expression<E4>&) [with E1 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E3 = cal::il::variable<cal::il::uint_type>, E4 = cal::il::variable<cal::il::uint_type>, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flat2d.hpp:109: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:473: instantiated from ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type> >, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:507: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&, const cal::il::detail::expression<E2>&, const cal::il::detail::expression<E3>&, const cal::il::detail::expression<E4>&) [with E1 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E3 = cal::il::variable<cal::il::uint_type>, E4 = cal::il::variable<cal::il::uint_type>, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flat2d.hpp:109: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::detail::binary<E1, E2, F>::emitCode(cal::il::Source&, std::ostream&) const [with E1 = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mul<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_add<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, F = cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type>]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:473: instantiated from ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mul<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_add<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint2_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:498: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&, const cal::il::detail::expression<E2>&) [with E1 = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mul<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_add<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint2_type]’ /home/mikec/calpp-0.8/examples/coalescingtest.cpp:48: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mul<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_add<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:473: instantiated from ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mul<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_add<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint2_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:498: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&, const cal::il::detail::expression<E2>&) [with E1 = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mul<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_add<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint2_type]’ /home/mikec/calpp-0.8/examples/coalescingtest.cpp:48: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context In file included from /home/mikec/calpp-0.8/include/cal/il/cal_il_flowcontrol.hpp:27, from /home/mikec/calpp-0.8/include/cal/il/cal_il.hpp:30, from /home/mikec/calpp-0.8/examples/coalescingtest.cpp:25: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In function ‘void cal::il::detail::emit_cmp(T, const cal::il::detail::expression<E2>&, cal::il::uint_type, bool) [with T = cal::il::detail::break_code<int>, E = cal::il::variable<cal::il::uint_type>]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_flowcontrol_cmp.hpp:206: instantiated from ‘void cal::il::detail::emit_cmp(T, const cal::il::detail::expression<E2>&, bool) [with T = cal::il::detail::break_code<int>, E = cal::il::variable<cal::il::uint_type>]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flowcontrol.hpp:171: instantiated from ‘void cal::il::detail::emit_while(const cal::il::detail::expression<E>&) [with E = cal::il::variable<cal::il::uint_type>]’ /home/mikec/calpp-0.8/examples/coalescingtest.cpp:54: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::variable<cal::il::uint_type>]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_flowcontrol_cmp.hpp:175: error: within this context In file included from /home/mikec/calpp-0.8/include/cal/il/cal_il.hpp:28, from /home/mikec/calpp-0.8/examples/coalescingtest.cpp:25: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::detail::binary<E1, E2, F>::emitCode(cal::il::Source&, std::ostream&) const [with E1 = cal::il::variable<cal::il::float4_type>, E2 = cal::il::detail::input_expression<cal::il::float4_type, cal::il::variable<cal::il::float2_type>, 2>, F = cal::il::detail::cal_binary_add<cal::il::float4_type, cal::il::float4_type>]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:473: instantiated from ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::variable<cal::il::float4_type>, cal::il::detail::input_expression<cal::il::float4_type, cal::il::variable<cal::il::float2_type>, 2>, cal::il::detail::cal_binary_add<cal::il::float4_type, cal::il::float4_type> >, T = cal::il::float4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:548: instantiated from ‘cal::il::variable<T>& cal::il::variable<T>::operator=(const cal::il::detail::expression<E1>&) [with E = cal::il::detail::binary<cal::il::variable<cal::il::float4_type>, cal::il::detail::input_expression<cal::il::float4_type, cal::il::variable<cal::il::float2_type>, 2>, cal::il::detail::cal_binary_add<cal::il::float4_type, cal::il::float4_type> >, T = cal::il::float4_type]’ /home/mikec/calpp-0.8/examples/coalescingtest.cpp:59: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::input_expression<cal::il::float4_type, cal::il::variable<cal::il::float2_type>, 2>]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::detail::binary<E1, E2, F>::emitCode(cal::il::Source&, std::ostream&) const [with E1 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, F = cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type>]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:104: instantiated from ‘void cal::il::detail::binary<E1, E2, F>::emitCode(cal::il::Source&, std::ostream&) const [with E1 = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, F = cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type>]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:473: instantiated from ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type> >, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:507: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&, const cal::il::detail::expression<E2>&, const cal::il::detail::expression<E3>&, const cal::il::detail::expression<E4>&) [with E1 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E3 = cal::il::variable<cal::il::uint_type>, E4 = cal::il::variable<cal::il::uint_type>, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flat2d.hpp:66: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::detail::binary<E1, E2, F>::emitCode(cal::il::Source&, std::ostream&) const [with E1 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, F = cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type>]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:104: instantiated from ‘void cal::il::detail::binary<E1, E2, F>::emitCode(cal::il::Source&, std::ostream&) const [with E1 = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, F = cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type>]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:473: instantiated from ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type> >, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:507: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&, const cal::il::detail::expression<E2>&, const cal::il::detail::expression<E3>&, const cal::il::detail::expression<E4>&) [with E1 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E3 = cal::il::variable<cal::il::uint_type>, E4 = cal::il::variable<cal::il::uint_type>, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flat2d.hpp:95: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::detail::binary<E1, E2, F>::emitCode(cal::il::Source&, std::ostream&) const [with E1 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, F = cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type>]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:104: instantiated from ‘void cal::il::detail::binary<E1, E2, F>::emitCode(cal::il::Source&, std::ostream&) const [with E1 = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, F = cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type>]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:473: instantiated from ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type> >, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:507: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&, const cal::il::detail::expression<E2>&, const cal::il::detail::expression<E3>&, const cal::il::detail::expression<E4>&) [with E1 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E3 = cal::il::variable<cal::il::uint_type>, E4 = cal::il::variable<cal::il::uint_type>, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flat2d.hpp:109: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context In file included from /home/mikec/calpp-0.8/include/cal/il/cal_il.hpp:29, from /home/mikec/calpp-0.8/examples/coalescingtest.cpp:25: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘std::string cal::il::detail::variable_clone<E>::resultCode() const [with E = cal::il::variable<cal::il::uint_type>]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: instantiated from ‘void cal::il::detail::binary<E1, E2, F>::emitCode(cal::il::Source&, std::ostream&) const [with E1 = cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, E2 = cal::il::variable<cal::il::uint_type>, F = cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type>]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:473: instantiated from ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:491: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&) [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flat2d.hpp:115: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::variable<cal::il::uint_type>]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:368: error: within this context In file included from /home/mikec/calpp-0.8/include/cal/il/cal_il.hpp:28, from /home/mikec/calpp-0.8/examples/coalescingtest.cpp:25: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::detail::binary<E1, E2, F>::emitCode(cal::il::Source&, std::ostream&) const [with E1 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mul<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, F = cal::il::detail::cal_binary_add<cal::il::uint_type, cal::il::uint_type>]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:104: instantiated from ‘void cal::il::detail::binary<E1, E2, F>::emitCode(cal::il::Source&, std::ostream&) const [with E1 = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mul<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_add<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, F = cal::il::detal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type> >, T = cal::il::uint4_type]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:507: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&, const cal::il::detail::expression<E2>&, const cal::il::detail::expression<E3>&, const cal::il::detail::expression<E4>&) [with E1 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E3 = cal::il::variable<cal::il::uint_type>, E4 = cal::il::variable<cal::il::uint_type>, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flat2d.hpp:95: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:474: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type> >, T = cal::il::uint4_type]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:507: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&, const cal::il::detail::expression<E2>&, const cal::il::detail::expression<E3>&, const cal::il::detail::expression<E4>&) [with E1 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E3 = cal::il::variable<cal::il::uint_type>, E4 = cal::il::variable<cal::il::uint_type>, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flat2d.hpp:109: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:474: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint_type]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:491: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&) [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flat2d.hpp:115: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:474: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint_type]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:491: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&) [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flat2d.hpp:116: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:474: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mul<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_add<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint2_type]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:498: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&, const cal::il::detail::expression<E2>&) [with E1 = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mul<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_add<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint2_type]’ /home/mikec/calpp-0.8/examples/coalescingtest.cpp:48: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mul<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_add<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:474: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::unary<cal::il::variable<cal::il::uint2_type>, cal::il::detail::cal_unary_cast<cal::il::float2_type, cal::il::uint2_type> >, T = cal::il::float2_type]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:548: instantiated from ‘cal::il::variable<T>& cal::il::variable<T>::operator=(const cal::il::detail::expression<E1>&) [with E = cal::il::detail::unary<cal::il::variable<cal::il::uint2_type>, cal::il::detail::cal_unary_cast<cal::il::float2_type, cal::il::uint2_type> >, T = cal::il::float2_type]’ /home/mikec/calpp-0.8/examples/coalescingtest.cpp:49: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::unary<cal::il::variable<cal::il::uint2_type>, cal::il::detail::cal_unary_cast<cal::il::float2_type, cal::il::uint2_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:474: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::variable<cal::il::float4_type>, cal::il::detail::input_expression<cal::il::float4_type, cal::il::variable<cal::il::float2_type>, 2>, cal::il::detail::cal_binary_add<cal::il::float4_type, cal::il::float4_type> >, T = cal::il::float4_type]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:548: instantiated from ‘cal::il::variable<T>& cal::il::variable<T>::operator=(const cal::il::detail::expression<E1>&) [with E = cal::il::detail::binary<cal::il::variable<cal::il::float4_type>, cal::il::detail::input_expression<cal::il::float4_type, cal::il::variable<cal::il::float2_type>, 2>, cal::il::detail::cal_binary_add<cal::il::float4_type, cal::il::float4_type> >, T = cal::il::float4_type]’ /home/mikec/calpp-0.8/examples/coalescingtest.cpp:59: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::variable<cal::il::float4_type>, cal::il::detail::input_expression<cal::il::float4_type, cal::il::variable<cal::il::float2_type>, 2>, cal::il::detail::cal_binary_add<cal::il::float4_type, cal::il::float4_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:474: error: within this context In file included from /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:29, from /home/mikec/calpp-0.8/include/cal/il/cal_il.hpp:28, from /home/mikec/calpp-0.8/examples/coalescingtest.cpp:25: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::detail::swizzle<E, P0, P1, P2, P3>::iEmitCode(const E1&) const [with E1 = cal::il::detail::binary<cal::il::detail::swizzle<cal::il::variable<cal::il::float2_type>, 1, 0, 0, 0>, cal::il::variable<cal::il::float_type>, cal::il::detail::cal_binary_add<cal::il::float_type, cal::il::float_type> >, E = cal::il::variable<cal::il::float2_type>, int P0 = 1, int P1 = 0, int P2 = 0, int P3 = 0]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:107: instantiated from ‘cal::il::detail::swizzle<E, P0, P1, P2, P3>& cal::il::detail::swizzle<E, P0, P1, P2, P3>::operator=(const cal::il::detail::expression<E1>&) [with E1 = cal::il::detail::binary<cal::il::detail::swizzle<cal::il::variable<cal::il::float2_type>, 1, 0, 0, 0>, cal::il::variable<cal::il::float_type>, cal::il::detail::cal_binary_add<cal::il::float_type, cal::il::float_type> >, E = cal::il::variable<cal::il::float2_type>, int P0 = 1, int P1 = 0, int P2 = 0, int P3 = 0]’ /home/mikec/calpp-0.8/examples/coalescingtest.cpp:60: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::detail::swizzle<cal::il::variable<cal::il::float2_type>, 1, 0, 0, 0>, cal::il::variable<cal::il::float_type>, cal::il::detail::cal_binary_add<cal::il::float_type, cal::il::float_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:60: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::detail::swizzle<E, P0, P1, P2, P3>::iEmitCode(const E1&) const [with E1 = cal::il::detail::binary<cal::il::detail::swizzle<cal::il::variable<cal::il::float2_type>, 2, 0, 0, 0>, cal::il::variable<cal::il::float_type>, cal::il::detail::cal_binary_add<cal::il::float_type, cal::il::float_type> >, E = cal::il::variable<cal::il::float2_type>, int P0 = 2, int P1 = 0, int P2 = 0, int P3 = 0]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:107: instantiated from ‘cal::il::detail::swizzle<E, P0, P1, P2, P3>& cal::il::detail::swizzle<E, P0, P1, P2, P3>::operator=(const cal::il::detail::expression<E1>&) [with E1 = cal::il::detail::binary<cal::il::detail::swizzle<cal::il::variable<cal::il::float2_type>, 2, 0, 0, 0>, cal::il::variable<cal::il::float_type>, cal::il::detail::cal_binary_add<cal::il::float_type, cal::il::float_type> >, E = cal::il::variable<cal::il::float2_type>, int P0 = 2, int P1 = 0, int P2 = 0, int P3 = 0]’ /home/mikec/calpp-0.8/examples/coalescingtest.cpp:62: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::detail::swizzle<cal::il::variable<cal::il::float2_type>, 2, 0, 0, 0>, cal::il::variable<cal::il::float_type>, cal::il::detail::cal_binary_add<cal::il::float_type, cal::il::float_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:60: error: within this context In file included from /home/mikec/calpp-0.8/include/cal/il/cal_il.hpp:29, from /home/mikec/calpp-0.8/examples/coalescingtest.cpp:25: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_sub<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint_type]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:548: instantiated from ‘cal::il::variable<T>& cal::il::variable<T>::operator=(const cal::il::detail::expression<E1>&) [with E = cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_sub<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint_type]’ /home/mikec/calpp-0.8/examples/coalescingtest.cpp:65: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_sub<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:474: error: within this context In file included from /home/mikec/calpp-0.8/include/cal/il/cal_il.hpp:29, from /home/mikec/calpp-0.8/examples/coalescingtest.cpp:25: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::detail::indexed_expression<T, E>::iEmitCode(const E1&) const [with E1 = cal::il::variable<cal::il::float4_type>, T = cal::il::float4_type, E = cal::il::named_variable<cal::il::variable<cal::il::uint_type> >]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:145: instantiated from ‘cal::il::detail::indexed_expression<T, E>& cal::il::detail::indexed_expression<T, E>::operator=(const cal::il::detail::expression<E1>&) [with E1 = cal::il::variable<cal::il::float4_type>, T = cal::il::float4_type, E = cal::il::named_variable<cal::il::variable<cal::il::uint_type> >]’ /home/mikec/calpp-0.8/examples/coalescingtest.cpp:70: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::variable<cal::il::float4_type>]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:104: error: within this context In file included from /home/mikec/calpp-0.8/include/cal/il/cal_il.hpp:28, from /home/mikec/calpp-0.8/examples/coalescingtest.cpp:25: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::detail::binary<E1, E2, F>::emitCode(cal::il::Source&, std::ostream&) const [with E1 = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, F = cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type>]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:473: instantiated from ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type> >, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:507: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&, const cal::il::detail::expression<E2>&, const cal::il::detail::expression<E3>&, const cal::il::detail::expression<E4>&) [with E1 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E3 = cal::il::variable<cal::il::uint_type>, E4 = cal::il::variable<cal::il::uint_type>, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flat2d.hpp:66: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:473: instantiated from ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type> >, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:507: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&, const cal::il::detail::expression<E2>&, const cal::il::detail::expression<E3>&, const cal::il::detail::expression<E4>&) [with E1 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E3 = cal::il::variable<cal::il::uint_type>, E4 = cal::il::variable<cal::il::uint_type>, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flat2d.hpp:66: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::detail::binary<E1, E2, F>::emitCode(cal::il::Source&, std::ostream&) const [with E1 = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, F = cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type>]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:473: instantiated from ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type> >, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:507: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&, const cal::il::detail::expression<E2>&, const cal::il::detail::expression<E3>&, const cal::il::detail::expression<E4>&) [with E1 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E3 = cal::il::variable<cal::il::uint_type>, E4 = cal::il::variable<cal::il::uint_type>, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flat2d.hpp:95: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:473: instantiated from ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type> >, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:507: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&, const cal::il::detail::expression<E2>&, const cal::il::detail::expression<E3>&, const cal::il::detail::expression<E4>&) [with E1 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E3 = cal::il::variable<cal::il::uint_type>, E4 = cal::il::variable<cal::il::uint_type>, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flat2d.hpp:95: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::detail::binary<E1, E2, F>::emitCode(cal::il::Source&, std::ostream&) const [with E1 = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, F = cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type>]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:473: instantiated from ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type> >, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:507: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&, const cal::il::detail::expression<E2>&, const cal::il::detail::expression<E3>&, const cal::il::detail::expression<E4>&) [with E1 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E3 = cal::il::variable<cal::il::uint_type>, E4 = cal::il::variable<cal::il::uint_type>, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flat2d.hpp:109: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:473: instantiated from ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type> >, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:507: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&, const cal::il::detail::expression<E2>&, const cal::il::detail::expression<E3>&, const cal::il::detail::expression<E4>&) [with E1 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E3 = cal::il::variable<cal::il::uint_type>, E4 = cal::il::variable<cal::il::uint_type>, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flat2d.hpp:109: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::detail::binary<E1, E2, F>::emitCode(cal::il::Source&, std::ostream&) const [with E1 = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mul<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_add<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, F = cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type>]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:473: instantiated from ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mul<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_add<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint2_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:498: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&, const cal::il::detail::expression<E2>&) [with E1 = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mul<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_add<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint2_type]’ /home/mikec/calpp-0.8/examples/coalescingtest.cpp:48: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mul<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_add<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:473: instantiated from ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mul<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_add<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint2_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:498: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&, const cal::il::detail::expression<E2>&) [with E1 = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mul<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_add<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint2_type]’ /home/mikec/calpp-0.8/examples/coalescingtest.cpp:48: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context In file included from /home/mikec/calpp-0.8/include/cal/il/cal_il_flowcontrol.hpp:27, from /home/mikec/calpp-0.8/include/cal/il/cal_il.hpp:30, from /home/mikec/calpp-0.8/examples/coalescingtest.cpp:25: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In function ‘void cal::il::detail::emit_cmp(T, const cal::il::detail::expression<E2>&, cal::il::uint_type, bool) [with T = cal::il::detail::break_code<int>, E = cal::il::variable<cal::il::uint_type>]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_flowcontrol_cmp.hpp:206: instantiated from ‘void cal::il::detail::emit_cmp(T, const cal::il::detail::expression<E2>&, bool) [with T = cal::il::detail::break_code<int>, E = cal::il::variable<cal::il::uint_type>]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flowcontrol.hpp:171: instantiated from ‘void cal::il::detail::emit_while(const cal::il::detail::expression<E>&) [with E = cal::il::variable<cal::il::uint_type>]’ /home/mikec/calpp-0.8/examples/coalescingtest.cpp:54: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::variable<cal::il::uint_type>]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_flowcontrol_cmp.hpp:175: error: within this context In file included from /home/mikec/calpp-0.8/include/cal/il/cal_il.hpp:28, from /home/mikec/calpp-0.8/examples/coalescingtest.cpp:25: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::detail::binary<E1, E2, F>::emitCode(cal::il::Source&, std::ostream&) const [with E1 = cal::il::variable<cal::il::float4_type>, E2 = cal::il::detail::input_expression<cal::il::float4_type, cal::il::variable<cal::il::float2_type>, 2>, F = cal::il::detail::cal_binary_add<cal::il::float4_type, cal::il::float4_type>]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:473: instantiated from ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::variable<cal::il::float4_type>, cal::il::detail::input_expression<cal::il::float4_type, cal::il::variable<cal::il::float2_type>, 2>, cal::il::detail::cal_binary_add<cal::il::float4_type, cal::il::float4_type> >, T = cal::il::float4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:548: instantiated from ‘cal::il::variable<T>& cal::il::variable<T>::operator=(const cal::il::detail::expression<E1>&) [with E = cal::il::detail::binary<cal::il::variable<cal::il::float4_type>, cal::il::detail::input_expression<cal::il::float4_type, cal::il::variable<cal::il::float2_type>, 2>, cal::il::detail::cal_binary_add<cal::il::float4_type, cal::il::float4_type> >, T = cal::il::float4_type]’ /home/mikec/calpp-0.8/examples/coalescingtest.cpp:59: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::input_expression<cal::il::float4_type, cal::il::variable<cal::il::float2_type>, 2>]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::detail::binary<E1, E2, F>::emitCode(cal::il::Source&, std::ostream&) const [with E1 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, F = cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type>]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:104: instantiated from ‘void cal::il::detail::binary<E1, E2, F>::emitCode(cal::il::Source&, std::ostream&) const [with E1 = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, F = cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type>]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:473: instantiated from ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type> >, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:507: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&, const cal::il::detail::expression<E2>&, const cal::il::detail::expression<E3>&, const cal::il::detail::expression<E4>&) [with E1 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E3 = cal::il::variable<cal::il::uint_type>, E4 = cal::il::variable<cal::il::uint_type>, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flat2d.hpp:66: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::detail::binary<E1, E2, F>::emitCode(cal::il::Source&, std::ostream&) const [with E1 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, F = cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type>]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:104: instantiated from ‘void cal::il::detail::binary<E1, E2, F>::emitCode(cal::il::Source&, std::ostream&) const [with E1 = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, F = cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type>]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:473: instantiated from ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type> >, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:507: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&, const cal::il::detail::expression<E2>&, const cal::il::detail::expression<E3>&, const cal::il::detail::expression<E4>&) [with E1 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E3 = cal::il::variable<cal::il::uint_type>, E4 = cal::il::variable<cal::il::uint_type>, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flat2d.hpp:95: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::detail::binary<E1, E2, F>::emitCode(cal::il::Source&, std::ostream&) const [with E1 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, F = cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type>]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:104: instantiated from ‘void cal::il::detail::binary<E1, E2, F>::emitCode(cal::il::Source&, std::ostream&) const [with E1 = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, F = cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type>]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:473: instantiated from ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::variable<cal::il::uint_type>, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint2_type, cal::il::uint2_type> >, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:507: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&, const cal::il::detail::expression<E2>&, const cal::il::detail::expression<E3>&, const cal::il::detail::expression<E4>&) [with E1 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, E3 = cal::il::variable<cal::il::uint_type>, E4 = cal::il::variable<cal::il::uint_type>, T = cal::il::uint4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flat2d.hpp:109: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context In file included from /home/mikec/calpp-0.8/include/cal/il/cal_il.hpp:29, from /home/mikec/calpp-0.8/examples/coalescingtest.cpp:25: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘std::string cal::il::detail::variable_clone<E>::resultCode() const [with E = cal::il::variable<cal::il::uint_type>]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: instantiated from ‘void cal::il::detail::binary<E1, E2, F>::emitCode(cal::il::Source&, std::ostream&) const [with E1 = cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, E2 = cal::il::variable<cal::il::uint_type>, F = cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type>]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:473: instantiated from ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:491: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&) [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_flat2d.hpp:115: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::variable<cal::il::uint_type>]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:368: error: within this context In file included from /home/mikec/calpp-0.8/include/cal/il/cal_il.hpp:28, from /home/mikec/calpp-0.8/examples/coalescingtest.cpp:25: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘void cal::il::detail::binary<E1, E2, F>::emitCode(cal::il::Source&, std::ostream&) const [with E1 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mul<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, F = cal::il::detail::cal_binary_add<cal::il::uint_type, cal::il::uint_type>]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:104: instantiated from ‘void cal::il::detail::binary<E1, E2, F>::emitCode(cal::il::Source&, std::ostream&) const [with E1 = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mul<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_add<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, F = cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type>]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:473: instantiated from ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mul<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_add<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint2_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:498: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&, const cal::il::detail::expression<E2>&) [with E1 = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mul<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_add<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint2_type]’ /home/mikec/calpp-0.8/examples/coalescingtest.cpp:48: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mul<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:104: instantiated from ‘void cal::il::detail::binary<E1, E2, F>::emitCode(cal::il::Source&, std::ostream&) const [with E1 = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mul<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_add<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, F = cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type>]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:473: instantiated from ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mul<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_add<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_cast<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint2_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:498: instantiated from ‘cal::il::variable<T>::variable(const cal::il::detail::expression<E1>&, const cal::il::detail::expression<E2>&) [with E1 = cal::il::detail::binary<cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mul<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >, cal::il::detail::cal_binary_add<cal::il::uint_type, cal::il::uint_type> >, E2 = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_div<cal::il::uint_type, cal::il::uint_type> >, T = cal::il::uint2_type]’ /home/mikec/calpp-0.8/examples/coalescingtest.cpp:48: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::detail::binary<cal::il::named_variable<cal::il::variable<cal::il::uint_type> >, cal::il::variable<cal::il::uint_type>, cal::il::detail::cal_binary_mod<cal::il::uint_type, cal::il::uint_type> >]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: error: within this context In file included from /home/mikec/calpp-0.8/include/cal/il/cal_il.hpp:29, from /home/mikec/calpp-0.8/examples/coalescingtest.cpp:25: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘std::string cal::il::detail::variable_clone<E>::resultCode() const [with E = cal::il::variable<cal::il::uint2_type>]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:67: instantiated from ‘void cal::il::detail::unary<E, F>::emitCode(cal::il::Source&, std::ostream&) const [with E = cal::il::variable<cal::il::uint2_type>, F = cal::il::detail::cal_unary_cast<cal::il::float2_type, cal::il::uint2_type>]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:473: instantiated from ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::unary<cal::il::variable<cal::il::uint2_type>, cal::il::detail::cal_unary_cast<cal::il::float2_type, cal::il::uint2_type> >, T = cal::il::float2_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:548: instantiated from ‘cal::il::variable<T>& cal::il::variable<T>::operator=(const cal::il::detail::expression<E1>&) [with E = cal::il::detail::unary<cal::il::variable<cal::il::uint2_type>, cal::il::detail::cal_unary_cast<cal::il::float2_type, cal::il::uint2_type> >, T = cal::il::float2_type]’ /home/mikec/calpp-0.8/examples/coalescingtest.cpp:49: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::variable<cal::il::uint2_type>]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:368: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘std::string cal::il::detail::variable_clone<E>::resultCode() const [with E = cal::il::variable<cal::il::float2_type>]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:84: instantiated from ‘std::string cal::il::detail::swizzle<E, P0, P1, P2, P3>::resultCode() const [with E = cal::il::variable<cal::il::float2_type>, int P0 = 2, int P1 = 0, int P2 = 0, int P3 = 0]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:60: instantiated from ‘void cal::il::detail::swizzle<E, P0, P1, P2, P3>::iEmitCode(const E1&) const [with E1 = cal::il::detail::swizzle<cal::il::variable<cal::il::float2_type>, 2, 0, 0, 0>, E = cal::il::variable<cal::il::float2_type>, int P0 = 2, int P1 = 0, int P2 = 0, int P3 = 0]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:90: instantiated from ‘cal::il::detail::swizzle<E, P0, P1, P2, P3>& cal::il::detail::swizzle<E, P0, P1, P2, P3>::operator=(const cal::il::detail::swizzle<E, P0, P1, P2, P3>&) [with E = cal::il::variable<cal::il::float2_type>, int P0 = 2, int P1 = 0, int P2 = 0, int P3 = 0]’ /home/mikec/calpp-0.8/examples/coalescingtest.cpp:55: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::variable<cal::il::float2_type>]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:368: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘std::string cal::il::detail::variable_clone<E>::resultCode() const [with E = cal::il::variable<cal::il::float4_type>]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: instantiated from ‘void cal::il::detail::binary<E1, E2, F>::emitCode(cal::il::Source&, std::ostream&) const [with E1 = cal::il::variable<cal::il::float4_type>, E2 = cal::il::detail::input_expression<cal::il::float4_type, cal::il::variable<cal::il::float2_type>, 2>, F = cal::il::detail::cal_binary_add<cal::il::float4_type, cal::il::float4_type>]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:473: instantiated from ‘void cal::il::variable<T>::iEmitCode(const E&) const [with E = cal::il::detail::binary<cal::il::variable<cal::il::float4_type>, cal::il::detail::input_expression<cal::il::float4_type, cal::il::variable<cal::il::float2_type>, 2>, cal::il::detail::cal_binary_add<cal::il::float4_type, cal::il::float4_type> >, T = cal::il::float4_type]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:548: instantiated from ‘cal::il::variable<T>& cal::il::variable<T>::operator=(const cal::il::detail::expression<E1>&) [with E = cal::il::detail::binary<cal::il::variable<cal::il::float4_type>, cal::il::detail::input_expression<cal::il::float4_type, cal::il::variable<cal::il::float2_type>, 2>, cal::il::detail::cal_binary_add<cal::il::float4_type, cal::il::float4_type> >, T = cal::il::float4_type]’ /home/mikec/calpp-0.8/examples/coalescingtest.cpp:59: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::variable<cal::il::float4_type>]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:368: error: within this context /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp: In member function ‘std::string cal::il::detail::variable_clone<E>::resultCode() const [with E = cal::il::variable<cal::il::float_type>]’: /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_types.hpp:107: instantiated from ‘void cal::il::detail::binary<E1, E2, F>::emitCode(cal::il::Source&, std::ostream&) const [with E1 = cal::il::detail::swizzle<cal::il::variable<cal::il::float2_type>, 1, 0, 0, 0>, E2 = cal::il::variable<cal::il::float_type>, F = cal::il::detail::cal_binary_add<cal::il::float_type, cal::il::float_type>]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:59: instantiated from ‘void cal::il::detail::swizzle<E, P0, P1, P2, P3>::iEmitCode(const E1&) const [with E1 = cal::il::detail::binary<cal::il::detail::swizzle<cal::il::variable<cal::il::float2_type>, 1, 0, 0, 0>, cal::il::variable<cal::il::float_type>, cal::il::detail::cal_binary_add<cal::il::float_type, cal::il::float_type> >, E = cal::il::variable<cal::il::float2_type>, int P0 = 1, int P1 = 0, int P2 = 0, int P3 = 0]’ /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:107: instantiated from ‘cal::il::detail::swizzle<E, P0, P1, P2, P3>& cal::il::detail::swizzle<E, P0, P1, P2, P3>::operator=(const cal::il::detail::expression<E1>&) [with E1 = cal::il::detail::binary<cal::il::detail::swizzle<cal::il::variable<cal::il::float2_type>, 1, 0, 0, 0>, cal::il::variable<cal::il::float_type>, cal::il::detail::cal_binary_add<cal::il::float_type, cal::il::float_type> >, E = cal::il::variable<cal::il::float2_type>, int P0 = 1, int P1 = 0, int P2 = 0, int P3 = 0]’ /home/mikec/calpp-0.8/examples/coalescingtest.cpp:60: instantiated from here /home/mikec/calpp-0.8/include/cal/il/cal_il_expression_swizzle.hpp:133: error: ‘std::string cal::il::detail::swizzable_expression<E>::resultCode() const [with E = cal::il::variable<cal::il::float_type>]’ is inaccessible /home/mikec/calpp-0.8/include/cal/il/cal_il_types.hpp:368: error: within this context make[2]: *** [examples/CMakeFiles/coalescingtest.dir/coalescingtest.cpp.o] Error 1 make[1]: *** [examples/CMakeFiles/coalescingtest.dir/all] Error 2

                • CAL++ v. 0.8 release
                  hazeman

                   

                  Originally posted by: mikeaclark Hi,

                  I have been trying to compile this on Ubuntu 9.1 x86_64, Catalyst 10.2, Stream SDK 2.01, but no luck.  When typing make I get all sorts of error messages (see attachment).  Any advice here would be greatly appreciated.

                  Thanks,

                  Mike.

                   

                  What version of Ubuntu are you using ? 9.10 ?

                  Please post your compiler version ( gcc -v ) .

                  The problem is with C++ compiler differently treating 'using' statement visibility in templates. I'll post fix soon.

                  PS. CAL++ project has forums and bug reporting features. Please use those next time. ATI's forum is really bad place for this ( your post is almost unreadable due to formating issues ).

                  PS. CAL++ has been tested on gcc++ 4.3

                    • CAL++ v. 0.8 release
                      hazeman

                      Compilation problem has been fixed. New version ( 0.8a ) is available for download.

                        • CAL++ v. 0.8 release
                          mikeaclark

                           

                          Originally posted by: hazeman Compilation problem has been fixed. New version ( 0.8a ) is available for download.

                           

                          Thanks for the response about this.  I can confirm that this does compile and work now.  (I am finding that the matrix multiplication example sometimes locks up my machine, requiring a reboot, but I believe this is driver instability, or something related to mixing Ubuntu 9.1 / Catalyst 10.2 / StreadSDK 2.01, as the machine has been extremely unstable with OpenGL and OpenCL)

                           

                          I this is great work you are doing, and I am following this work with keen interest.  Out of curiosity, do you think it is possible to obtain the level of performance, i.e., in matrix multiplication, using OpenCL, or is CAL required?  Is it possible to interoperate OpenCL with CAL++?  i.e., using a highly tuned CAL++ kernel, but using OpenCL for the bulk of one's development

                           

                          Cheers.

                            • CAL++ v. 0.8 release
                              mikeaclark

                               

                              Originally posted by: mikeaclark
                              Originally posted by: hazeman Compilation problem has been fixed. New version ( 0.8a ) is available for download.

                               

                               

                               

                              I this is great work you are doing, and I am following this work with keen interest.  Out of curiosity, do you think it is possible to obtain the level of performance, i.e., in matrix multiplication, using OpenCL, or is CAL required?  Is it possible to interoperate OpenCL with CAL++?  i.e., using a highly tuned CAL++ kernel, but using OpenCL for the bulk of one's development

                               

                               

                               

                              Never mind my question regarding OpenCL performance.  I see you've already answered this on another thread.