https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123759
--- Comment #3 from Xi Ruoyao <xry111 at gcc dot gnu.org> --- Hmm, it seems __lsx_* always use __m128i as input/output types while __builtin_lsx_* (mostly) use the real vector types. But the latter are not a part of the stable API so user code cannot use them as well :(.
