Ответ: опять про Whetstone, сравнил на железе версии иар 3.20а и 3.21а - в новой версии есть прирост скорости при 32-bit double
void tst_whetstone( void ) { int cr; long t; // Прерывания разрешены, время измерялось на живом макете по тикам таймерного (TIMERA) прерывания (1 ms) // Другие прерывания запрещены. // процессор MSP430F149, MCLK = 6 МГц, компиляторы IAR v3.20a и IAR v3.21a, полная оптимизация по скорости с выключеным // "Code Motion" (он глючит в этой версии), умножение по железу включено // -1L т.к. время старта, после ожидания начала тика, на 1 > (t = tick_ms) #define TIM_MINUS 1L // tick_ms - милисекундные тики таймера, unsigned long // 32-bit double // 6385 ms v.3.20a // 5060 ms v.3.21a // 64-bit double // 40128 ms v.3.20a // 40128 ms v.3.21a printf( "\fStart" ); for ( cr = 0; ; cr++ ) { for ( t = tick_ms; t == tick_ms; ) // на начало тика ; whetstone(); t = tick_ms - t - TIM_MINUS; printf( "\vt = %ld \n%d ", t, cr ); } }