Hi all, These four patches are going to fix no-evex512 function attribute. The detail of the issue comes following:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111889 My proposal for this problem is to also push "no-evex512" when defining 128/256 intrins in AVX512. Besides, I added some new intrins to support the current AVX512 intrins. The newly added _mm{,256}_avx512* intrins are duplicated from their _mm{,256}_* forms from AVX2 or before. We need to add them to prevent target option mismatch when calling AVX512 intrins implemented with these intrins under no-evex512 function attribute. All AVX512 intrins calling those AVX2 intrins or before will change their calls to these newly added AVX512 version. This will solve the problem when we are using no-evex512 attribute with AVX512 related intrins. But it will not solve target option mismatch when we are calling AVX2 intrins or before with no-evex512 function attribute since as mentioned in PR111889, it actually comes from a legacy issue. Therefore, we are not expecting that usage. Regtested on x86_64-pc-linux-gnu. Ok for trunk? Thx, Haochen