This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/78451] [7 Regression] FAIL: gcc.target/i386/sse-22a.c: error: inlining failed in call to always_inline '_mm512_setzero_ps'


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78451

--- Comment #4 from Uroš Bizjak <ubizjak at gmail dot com> ---
(In reply to Jakub Jelinek from comment #2)

> Another thing is that
> /* Doesn't require avx512vl target and is used in avx512dqintrin.h.  */
> extern __inline __m128i
> __attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
> _mm_setzero_di (void)
> {
>   return __extension__ (__m128i)(__v2di){ 0LL, 0LL};
> }
> looks just wrong to me in avx512vlintrin.h.
> While it indeed doesn't need AVX512VL, I think that intrinsic needs SSE2 at
> least, because otherwise __v2di and __m128i don't really work.
> Why do we have that intrinsic at all and use it?  Can't find it in AVX512
> manuals, and don't see it in ICC headers either?  Can't we just use
> _mm_setzero_si128 instead?  I mean, even _mm_setzero_si128 is used in other
> spots even when cast to e.g. __v8hi, or __v16qi, or _mm256_setzero_si256 is
> used
> when cast to __v8si even when _mm256_setzero_si256 builds __v4di rather than
> __v8si.

It looks to me that both, _mm_setzero_di and _mm_setzero_hi should be killed
and replaced with casted _mm_setzero_si128.

> And the last thing to consider is if sse-22.c shouldn't have
> avx5124fmaps,avx5124vnniw added to
> #pragma GCC target
> ("avx,avx2,rdrnd,fsgsbase,f16c,rtm,avx512f,avx512er,avx512cd,avx512pf,sha,
> avx512vl,avx512bw,avx512dq,avx512ifma,avx512vbmi")

Yes, all new options should be added here.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]