Hello Kai, Thank you very much for your reply, and for your participation in this discussion. As a member of MinGW team (am I right ?) you could bring the invaluable help to this issue resolution. So, there are two possible solutions: - (1st) Make all store/loads unaligned - (2nd) Make temporal variable properly aligned Technically speaking, which one is simpler to patch GCC with ? I would prefer (2nd) way, but if (1st) is likely to be implemented more quickly, it still far better than current state...
Hello Kai, Thank you very much for your reply, and for your participation in this discussion. As a member of MinGW team (am I right ?) you could bring the invaluable help to this issue resolution. So, there are two possible solutions: - (1st) Make all store/loads unaligned - (2nd) Make temporal variable properly aligned Technically speaking, which one is simpler to patch GCC with ? I would prefer (2nd) way, but if (1st) is likely to be implemented more quickly, it still far better than current state...
Hello Kai, Thank you very much for your reply, and for your participation in this discussion. As a member of MinGW team (am I right ?) you could bring the invaluable help to this issue resolution. So, there are two possible solutions: - (1st) Make all store/loads unaligned - (2nd) Make temporal variable properly aligned Technically speaking, which one is simpler to patch GCC with ? I would prefer (2nd) way, but if (1st) is likely to be implemented more quickly, it still far better than current state...
Hello Kai, Thank you very much for your reply, and for your participation in this discussion. As a member of MinGW team (am I right ?) you could bring the invaluable help to this issue resolution. So, there are two possible solutions: (1st) Make all store/loads unaligned (2nd) Make temporal variable properly aligned Technically speaking, which one is simpler to patch GCC with ? I would prefer (2nd) way, but if (1st) is likely to be implemented more quickly, it still far better than current state...
Please also note, that alignment on 32 is also an alignment on 16 ;) So if even GCC will align ALL on 32 (what is required for __m256, than it will still be perfectly within the ABI requirements :)
Hi, NightStrike Sorry, but you wrong about ABI (as many others "in comments"). The ABI require stack to be aligned on 16 before function call, but it is not the same as requiremen to align all objects on stack to 16. This is the most ugly misconception in all these discussions. Please read the ABI on MSDN, it explicitly states that: Most structures are aligned to their natural alignment.../Alignment above 16 bytes must be done manually.. Moreover, GCC already align vector types (__mXXX) correctly...
Hi, Icha If you could start the petition, please do it. I am afraid I don't know from which to start.
Hi, Icha As I said above in my reply to Royi, I am in a same boat and I am personaly extremely interesting to get rid of AVX usage issues with MinGW 64. My whole project is in dangerous and switching to other compiler is not an option. As I said, I did some investigation and I am sure the fix is easy for this issue. I will sign a petition, if we will be able to start it. I would also be interesing to contact someone from MinGW 64 team to discuss technical details ... I am pretty sure the fix is ...