mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-10-22 16:43:05 -05:00
ds_min/max/cmpst_f32 and ds_min/max/cmpst_f64 with their _rtn forms follow the rule measured on RDNA2 (gfx1036): both operands are flushed to a signed zero when the type's denormal field flushes, a signalling-NaN data operand is stored quieted, else a signalling-NaN old value, else a quiet NaN loses, else the ordered compare decides, and the flushed value is written. The shared f32 path used the host's float compares, so its NaN and denormal results were the driver's; the shared f64 path lacked the signalling-NaN rules the buffer path has. Both now use AtomicFloatBits. The translation marks the shared float atomics with the mode's flush in MemoryInfo. The new agc_driver_lds_float_atomic_modes pins 32 operand pairs per type in the titles' mode, with both fields kept and with both flushed. The 64-bit test's model gets the signalling-NaN rule and one lane kind now feeds the signalling NaN of its table into min/max. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012GLfKH7Sqe51wX254k1XsV