how to enable vector intrinsic functions in fortran frontend

Sa Liu SALIU@de.ibm.com
Mon Oct 15 18:02:00 GMT 2007


Hi,

The IBM XL Fortran compiler (XL Fortran V11.1 for Linux) defines vector 
data types ( 
http://publib.boulder.ibm.com/infocenter/lnxpcomp/v9v111/topic/com.ibm.xlf111.linux.doc/xlflr/vectordatatype.htm#vectordatatype 
), in order to enable PowerPC VMX intrinsic procedures in Fortran 
(http://publib.boulder.ibm.com/infocenter/lnxpcomp/v9v111/topic/com.ibm.xlf111.linux.doc/xlflr/vmxintrinsics.htm#vmxintrinsics). 
We are now going to port the same feature to gfortran. In addition we 
would like to enable the vector intrinsics on SPU too. But there are still 
a couple of questions need to be clarified.

Since PowerPC Vector type can be composed of different scalar types, some 
of which, like pixel type doesn't exist in Fortran. XLF defines pixel type 
in compiler frontend, but restricts its usage only as part of a vector 
type. Our proposal is to have a facility in Fortran frontend to add 
backend-specific data types, and construct vector and it's special scalar 
types/kinds in PowerPC/SPU backend. Does this sound reasonable?

As to the intrinsic functions, the target specific builtin functions (e.g. 
__builtin_altivec_...) have been initialized in 
gfc_init_builtin_functions. The question is how could these functions be 
mapped to Fortran frontend, with names recognizable by the fortran 
program?

Any opinion on this will be appreciated... 

Thanks!
Sa



More information about the Fortran mailing list