[fpc-devel] Problems with MM types (__m128 etc).

J. Gareth Moreton gareth at moreton-family.com
Wed Apr 6 22:58:20 CEST 2022


I used it because it was easy to hot-swap the constructor in the 
definition of __m128 and the like, and it was a quick and convenient way 
to ensure the alignment was correct.

Gareth aka. Kit

On 06/04/2022 21:16, Jonas Maebe via fpc-devel wrote:
> On 06/04/2022 19:20, J. Gareth Moreton via fpc-devel wrote:
>> I recently made a merge request that initally just fixed the 
>> incorrect memory alignment for __m128 and similar types, but doing so 
>> revealed a whole plethora of other bugs.  First, when I fixed it, 
>> __m128 etc were no longer recognised as a valid SIMD or aggregate 
>> type due to the wrong alignment field being checked at one point, and 
>> some tests with vectorcall revealed some bad code being generated in 
>> places.
>
> Note that the ado_IsVector flag until now was only added to be able to 
> define arrays as vector types for the purpose of the LLVM backend. 
> There is absolutely no support for vector types based on this flag 
> anywhere in the code generator.
>
>
> Jonas
> _______________________________________________
> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
>

-- 
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus



More information about the fpc-devel mailing list