In xTIMEcomposer User Guide chapter XS1 Data Types it doesn't. I have searched through some of the release notes, like this but failed to find anything about "64" or the like.
This compiles with xTIMEcomposer 14.3.2:
Code: Select all
vvoid test (void) {
long mylong = 0xfffffffe; // -2
long long mylonglong = 0xfffffffe; // Should have been 4294967294 if 64 bits wide. But is -2
for (unsigned i=0; i<5; i++) {
printf ("LL(%u): mylong:%d - mylonglong:%d\n",
i, mylong, mylonglong);
mylong++;
mylonglong++;
}
float myfloat = -2.1;
int myfloatint = (int) myfloat;
double mydouble = -2.1;
long double mylongdouble = -2.1;
for (unsigned i=0; i<5; i++) {
printf ("F(%u) myfloat:%f - myfloatint:%d - mydouble:%f mylongdouble:%f\n",
i, myfloat, myfloatint, mydouble, mylongdouble);
myfloat = myfloat + 1.0;
myfloatint = (int) myfloat;
mydouble = mydouble + 1.0;
mylongdouble = mylongdouble +1.0;
}
}
int main() {
par {
test();
}
return 0;
}
Code: Select all
LL(0): mylong:-2 - mylonglong:-2
LL(1): mylong:-1 - mylonglong:-1
LL(2): mylong:0 - mylonglong:0
LL(3): mylong:1 - mylonglong:1
LL(4): mylong:2 - mylonglong:2
F(0) myfloat:-2.100000 - myfloatint:-2 - mydouble:-2.100000 mylongdouble:-2.100000
F(1) myfloat:-1.100000 - myfloatint:-1 - mydouble:-1.100000 mylongdouble:-1.100000
F(2) myfloat:-0.100000 - myfloatint:0 - mydouble:-0.100000 mylongdouble:-0.100000
F(3) myfloat:0.900000 - myfloatint:0 - mydouble:0.900000 mylongdouble:0.900000
F(4) myfloat:1.900000 - myfloatint:1 - mydouble:1.900000 mylongdouble:1.900000
However, I cannot from the above conclude that double and long double are supported as (64 bits values) by the tests above (since I really don't know how to make that wrap-around that I did with 32->64 bits integer, for IEEE floats)
Comments?