I got mixed results with icc for -------------------------- short a; void g(short); void f(void) { g(a); } ----------------------
it produces a movswl. For --------------------------- void g(int); void f(short a) { g(a); } -------------------------- it produces a movswq. For the original test ------------------------- void g(short); void f(short a) { g(a); } ---------------------- it avoids the extension. Cheers, -- Rafael Avila de Espindola Google | Gordon House | Barrow Street | Dublin 4 | Ireland Registered in Dublin, Ireland | Registration Number: 368047