https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122095
Bug ID: 122095
Summary: Missed optimization for _mm_insert_xxx
Product: gcc
Version: 15.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: mserdarsanli at gmail dot com
Target Milestone: ---
Missed optimization for _mm_insert_epi8 (and other similar intrinsics like
_mm_insert_epi16)
Sample Code:
void ins(__m128i *s1)
{
*s1 = _mm_insert_epi8(*s1, 10, 1);
}
GCC generated assembly:
ins(long long vector[2]*):
vmovdqa xmm0, XMMWORD PTR [rdi]
mov eax, 10
vpinsrb xmm0, xmm0, eax, 1
vmovdqa XMMWORD PTR [rdi], xmm0
ret
Clang generated assembly:
ins(long long vector[2]*):
mov byte ptr [rdi + 1], 10
ret