[Issue 16489] [backend][optimizaton][registers] DMD is 10-20 times slower for GLAS

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Tue Sep 27 02:09:45 PDT 2016


https://issues.dlang.org/show_bug.cgi?id=16489

--- Comment #2 from Илья Ярошенко <ilyayaroshenko at gmail.com> ---
size_t length; // > 0
__vector(float[4])[2]* a; //aligned
float[6]* b;

__vector(float[4])[2][6] reg; // should be located in the registers 
// init reg = 0;

__vector(float[4])[2] ai = void;
__vector(float[4])[6] bi = void;


do {
   ai[0] = a[0][0]; // should be located in the registers 
   ai[1] = a[0][1]; // should be located in the registers 

   foreach(i; AliasSeq!(0, 1, 2, 3, 4, 5))
   {
      bi[i] = b[0][i]; // Issue 16488, // should be located in the registers 
      reg[i][0] += ai[0] * bi[i];
      reg[i][1] += ai[1] * bi[i];
   }

   a++;
   b++;
} while(--length);

--


More information about the Digitalmars-d-bugs mailing list