[vsipl++] Compiling VSIPL++ on Cell PPE

Jules Bergmann jules at codesourcery.com
Tue Oct 9 16:30:38 UTC 2007


Hahn,

As far as I can tell, it looks like Mercury changed their API. 
According to the latest SAL documentation,

https://customers.mc.com/self_solve/docs/doc_files/SAL_Reference.pdf

vconvert_s8_f32x takes a 'char*' first argument:

void vconvert_s8_f32x(
char *A, /* input vector */
int i, /* address stride for A */
float *C, /* output vector */
int k, /* address stride for C */
float *scale, /* pointer to scale value (NULL=1.0) */
float *bias /* pointer to bias value (NULL=0.0) */
int n, /* element count */
int rfflag, /* reserved */
int eflag ); /* ESAL flag */

This is consistent with our experience using SAL.

However, from your error message,

> src/vsip/opt/sal/elementwise.hpp:256: error: invalid conversion from 
> ‘char* const’ to ‘signed char*’
> src/vsip/opt/sal/elementwise.hpp:256: error:   initializing argument 1 
> of ‘void vconvert_s8_f32x(signed char*, int, float*, int, float*, 
> float*, int, int, int)’
> make: *** [src/vsip/initfin.o] Error 1

it now appears SAL expects a 'signed char*'.  You might look at sal.h to 
confirm this change.  If so, you might also let Mercury know, since they 
probably didn't mean to break application compatibility like this.

We can of course work around this in VSIPL++.  The easiest way for us to 
fix this by sending you an updated snapshot.  However, if it is more 
convenient for you, we can also send you a patch against 1.3 or 1.3.1. 
Let me know which you would prefer.

				-- Jules

-- 
Jules Bergmann
CodeSourcery
jules at codesourcery.com
(650) 331-3385 x705



More information about the vsipl++ mailing list