Folks: The Pentium 4 has two different ways to do floating point: x87, and SSE/SSE2. SSE* has two mode bits:
FTZ: flush to zero on underflows (not IEEE compatible)
DAZ: treat denormals (input) as zero (not IEEE compatible)
Although these two modes are not IEEE compatible, they are quite popular and lead to almost no degradation.
x87 has no such modes and denorms are treated as in P6 (fixed through ucode assists), except significantly slower (read: P6 about 100-120 clk, P4 about 1200 clk). More recent version of the Pentium 4 are much faster on these.
C code to filter denorms ought to work no differently on P4 than on Pentium III's and earlier.
-Bob Colwell
ps. I checked this answer directly with the engineer responsible for both P6 and Pentium 4 floating point architecture. I can't read German or I'd check your reference below.
For those speaking german, the July-issue of "Keyboards" magazine observed a similar thing in VST plugins etc. on Pentium IV processors. Obviously Intel changed the handling of denormalisation in the newer processors, so that older counter measures against denorm. fail again.
Interesting article...
Frank Barknecht barknecht@dradio-online.de -= www.dradio.de =- DeutschlandRadio-Online * Redaktion Köln tel 0221 - 345 1471 * fax 0221 - 345 1480