Hello friends, i have made tests using the fma()-function and discovered an issue (see also this thread: http://gcc.gnu.org/ml/gcc-help/2009-04/msg00121.html). Brian Budge sent me a short benchmark programm to measure the execution time on my machine. Finally the fma() operation was faster than the a*b+c operation, but: If you use the -ansi flag to compile, then the fma()-operation takes 4-5-times longer, as without. So, now my question: Is this a known issue or an intendet behaviour? If yes, what other flags slow down such functions? Has anybody experienced a similiar case? Sorry for my bad english and the boring questions:-). Here is the benchmark, Brian sent me: #include <time.h> #include <math.h> #include <iostream> using namespace std; static const size_t N = 1<<28; int main() { #if defined(CLOCK_REALTIME_HR) clockid_t cid(CLOCK_REALTIME_HR); #else clockid_t cid(CLOCK_REALTIME); #endif timespec start, stop; double acc = 0.0, a = 10.0, b = 50.0, c = -0.235, seconds = 0.0; clock_gettime(cid, &start); for(size_t i = 0; i < N; i += 8) { acc += a * b + c; acc += a * b + c; acc += a * b + c; acc += a * b + c; acc += a * b + c; acc += a * b + c; acc += a * b + c; acc += a * b + c; } clock_gettime(cid, &stop); seconds += stop.tv_sec - start.tv_sec; seconds += double(stop.tv_nsec-start.tv_nsec)*1e-9; cout << "ops: acc is " << acc << " in " << seconds << " seconds" << endl; acc = seconds = 0.0; clock_gettime(cid, &start); for(size_t i = 0; i < N; i += 8 ) { acc += fma(a, b, c); acc += fma(a, b, c); acc += fma(a, b, c); acc += fma(a, b, c); acc += fma(a, b, c); acc += fma(a, b, c); acc += fma(a, b, c); acc += fma(a, b, c); } clock_gettime(cid, &stop); seconds += stop.tv_sec - start.tv_sec; seconds += double(stop.tv_nsec-start.tv_nsec)*1e-9; cout << "fma: acc is " << acc << " in " << seconds << " seconds" << endl; return 0; } Thanks in advance! Best regards Martin -- Neu: GMX FreeDSL Komplettanschluss mit DSL 6.000 Flatrate + Telefonanschluss für nur 17,95 Euro/mtl.!* http://dslspecial.gmx.de/freedsl-surfflat/?ac=OM.AD.PD003K11308T4569a