https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111384
--- Comment #2 from Siarhei Volkau <lis8215 at gmail dot com> --- Well what the godbolt says with -O2 -fomit-frame-pointer. ARM: uxth r0, r0 @ << zero extend strh r0, [r1] strh r0, [r2] bx lr ARM64: and w0, w0, 65535 @ << zero extend strh w0, [x1] strh w0, [x2] ret MIPS64: andi $4,$4,0xffff @ << zero extend sh $4,0($5) jr $31 sh $4,0($6) MRISC32: shuf r1, r1, #2888 @ << zero extend sth r1, [r2] sth r1, [r3] ret RISC-V: slli a0,a0,16 @ << zero extend srli a0,a0,16 @ << zero extend sh a0,0(a1) sh a0,0(a2) ret RISC-V (64-bit): slli a0,a0,48 @ << zero extend srli a0,a0,48 @ << zero extend sh a0,0(a1) sh a0,0(a2) ret Xtensa ESP32: entry sp, 32 extui a2, a2, 0, 16 @ << zero extend s16i a2, a3, 0 s16i a2, a4, 0 retw.n Loongarch64: bstrpick.w $r4,$r4,15,0 @ << zero extend st.h $r4,$r5,0 st.h $r4,$r6,0 jr $r1 MIPS: andi $4,$4,0xffff @ << zero extend sh $4,0($5) jr $31 sh $4,0($6) SH: extu.w r4,r4 @ << zero extend mov.w r4,@r5 rts mov.w r4,@r6 Other available at godbolt (x86-64/Power/Power64/s390) unaffected.