From: antispam@fricas.org   
      
   Michael S wrote:   
   >   
   > Zen3 has its own can of worms in the area of moving data between   
   > GPR and SIMD. The issues here are more subtle than those mentioned   
   > above. And unfortunately almost completely non-documented in the   
   > manuals. And despite that issues are subtle, performance impact can be   
   > very significant.   
   >   
   > I encountered these things when implementing alternative   
   > (to those currently in use by gcc) IEEE binary128 arithmetic routines.   
   > My conclusion was that designers of binary128 ABI in general and of ABI   
   > of support routines in particular made a serious mistake by treating   
   > binary128 (a.k.a. __float128, a.k.a _Float128, a.k.a. 'long double' on   
   > ARM64) as "floating-point" type that is passed around in XMM registers   
   > (or Neon registers on ARM64). Both passing it in pair of GPRs and via   
   > memory would be significantly faster on AMD processors and detectably   
   > faster on Intel processors.   
      
   If they want to handle that type in hardware on some future model,   
   then ABI must use floating point (that is XMM) register.   
      
   --   
    Waldek Hebisch   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|