[fpc-devel] Vectorization

John Lee johnelee0 at gmail.com
Wed Feb 7 12:44:20 CET 2018

Hi Kit/Gareth

Thanks for this work - I've been following all your changes to win64. Can't
say I understand all of the vector ones. Be good to commit to trunk asap -
tho' gather your are waiting for some Florian mods.

Just few qs - maybe these could be clarified in comments/example/tests

1) How does this work on amd processors that have vector stuff?

2)exactly which processors amd/intel have this stuff?

3) don't understand why this stuff doesn't work w/o mods on linux, which I
think you say somewhere.

Thanks again

PS assume you are on devel list tho' doing a reply to this email in gmail
copies you and devel? Dohhhhh.

On 7 February 2018 at 08:23, J. Gareth Moreton <gareth at moreton-family.com>

> Hi everyone,
> After a lot of work, I have implemented 'vectorcall' into Win64, and made
> a patch for Lazarus to recognise
> the keyword in the IDE and highlight it accordingly.
> FPC vectorcall patch:
> https://bugs.freepascal.org/view.php?id=32781
> Lazarus vectorcall support patch:
> https://bugs.freepascal.org/view.php?id=33134
> The vectorcall patch also contains the code in the patch for issue #27870,
> since they share a lot in common.
> So far, I have confirmed that FPC and Lazarus successfully compile on
> Win32 and Win64, but I know for a fact
> that the code changes affect Linux 64-bit as well in that the SSEUP_CLASS
> is now properly supported
> (vectorcall reuses the System V ABI code for convenience and
> compatibility), so FPC's implementation of the
> System V ABI should now properly support 128-bit SSE vectors.
> Note that 256-bit and 512-bit vectors are currently disabled in the code,
> since the compiler does not fully
> support vectors of this size yet, and Florian is working on this himself.
> I have provided 3 test programs in #32781 that should compile under both
> Win64 and Linux 64-bit (it will
> throw a custom $FATAL error if it's not one of these two platforms) in
> order to test correct code production
> and register allocation.  However, testing will have to be very extensive
> for this addition.
> I hope this will serve the x86-64 assembly programmers well - have fun!
> Gareth aka. Kit
> _______________________________________________
> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20180207/f2f06e76/attachment.html>

More information about the fpc-devel mailing list