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/81389] _mm_cmpestri segfault on -O0


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

rockeet <rockeet at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|INVALID                     |---

--- Comment #11 from rockeet <rockeet at gmail dot com> ---
function proto type of _mm_cmpestri is:

int _mm_cmpestri (__m128i __X, int __LX, __m128i __Y, int __LY, const int __M)

not

int _mm_cmpestri (__m128i_u __X, int __LX, __m128i __Y, int __LY, const int
__M)

-----------------------------------------------------------

I have greped `__m128i_u`, result: 

emmintrin.h:typedef long long __m128i_u __attribute__ ((__vector_size__ (16),
__may_alias__, __aligned__ (1)));
emmintrin.h:_mm_loadu_si128 (__m128i_u const *__P)
emmintrin.h:_mm_loadl_epi64 (__m128i_u const *__P)
emmintrin.h:_mm_storeu_si128 (__m128i_u *__P, __m128i __B)
emmintrin.h:_mm_storel_epi64 (__m128i_u *__P, __m128i __B)

I have also greped `_mm_cmpestri`, result:

smmintrin.h:_mm_cmpestri (__m128i __X, int __LX, __m128i __Y, int __LY, const
int __M)
--------------------------^^^^^^^
smmintrin.h:#define _mm_cmpestri(X, LX, Y, LY, M)                              
        \


----------------------------------------------------------

Maybe gcc should add an intrinsic like `_mm_cmpestri_u` for memory operand(does
not require memory align).
This can easily fix this issue, and also works for C (C has no function
overload)

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