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 .
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?..
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 .
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
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
Compilation problem has been fixed. New version ( 0.8a ) is available for download.
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.
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.
Version 0.8b has been released. Library is now correctly compiling under Windows with Visual C++.