Auto-Vectorization and array/vector operations

John Colvin via Digitalmars-d digitalmars-d at puremagic.com
Thu Jul 16 01:11:20 PDT 2015


On Wednesday, 15 July 2015 at 22:42:05 UTC, Steven wrote:
> I was trying to show someone how awesome Dlang was earlier, and 
> how the vector operations are expected to take advantage of the 
> CPU vector instructions, and was dumbstruck when dmd and gdc 
> both failed to auto-vectorize a simple case.  I've stripped it 
> down to the bare minimum and loaded the example on the 
> interactive compiler: 
> http://asm.dlang.org/#%7B%22version%22%3A3%2C%22filterAsm%22%3A%7B%7D%2C%22compilers%22%3A%5B%7B%22sourcez%22%3A%22JYWwDg9gTgLgBAY2gUwHQGdQBMDcAoPAMwBsIBDGAbQCYBWANgF05kAPM8Y5AQQAoTyVOkzhkANHAEUaDZgCMAlHgDeeOJNLThzBPnUB6fXCjJ0AV2Ix0cYADs45uenRrElZgF5R7uAFo4cu56xsgwZlD2ungAvgRSQrIs7JzIAEL8mgki4hqCMiKKKq7xAByUAMzUjABuZHBeCGToMBmCZZWMCmTBpRVV1XL1iE0tvR0Kcj2Z7f1R6q6GIeaW1nYOZnJgLurVCD5etT7%2BA0EE6iZhEcPNrVqyCrv40UAAA%3D%22%2C%22compiler%22%3A%22dmd2067%22%2C%22options%22%3A%22-O%20-release%20-inline%20-boundscheck%3Doff%22%7D%5D%7D
>
> [...]

Not sure why DMD isn't using SIMD on the first one, haven't 
looked at that code in a while. Anyway, gdc vectorises both: 
http://goo.gl/CzD15s and that's with gcc4.9 backend, it can 
probably do better build against something more recent.


More information about the Digitalmars-d mailing list