On Wed, Oct 14, 2009 at 7:10 PM, Hauke Heibel
<hauke.heibel@xxxxxxxxxxxxxx> wrote:
This works without warnings. Could you try to explain how this relates to the failed inlining in ei_redux_novec_unroller?
well, there:
redux_prod<1>();
redux_prod<2>();
redux_prod<3>();
redux_prod<4>();
the issue only occurs for even sizes which are the only one being vectorized, so I wanted to be sure VS was able to align a function calling SSE intrinsics..
gael
I have to correct my observation from before. It does not seem to be SSE related since with test_triangular, there are still failed inlines. I attached the list of warnings of test_triangular.
Nonetheless, the warning did not appear with the example from above while SSE was disabled.
- Hauke
On Wed, Oct 14, 2009 at 6:14 PM, Gael Guennebaud
<gael.guennebaud@xxxxxxxxx> wrote:
that's not a good new. What about this simple example:
#include <Eigen/Eigen>
using namespace Eigen;
template<typename T>
EIGEN_STRONG_INLINE void funca(T* a, T* b)
{
ei_pstore(a,ei_padd(ei_pload(a),ei_pload(b)));
}
int main(){
funca<double>(0,0);
}
if it compiles fine then we can try to add a few more indirections...
gael.
On Wed, Oct 14, 2009 at 5:22 PM, Hauke Heibel
<hauke.heibel@xxxxxxxxxxxxxx> wrote:
Ok, some more infos.
The issue is SSE specific, i.e. with 32bit builds and neither /arch:SSE nor /arch:SSE2 set, the warning disappears.
Furthermore, it does not only occure in Redux.h - compiling the unit tests in release with SSE reveals all occurences. Please remember that this issue is currently only proven to occur on VC9. I attached an incomplete list of reports generated by compiling parts of the unit tests.
Regards,
Hauke