https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91188
--- Comment #3 from Uroš Bizjak <ubizjak at gmail dot com> --- The testcase involving HImode pattern: --cut here-- struct S1 { unsigned short val; unsigned short pad1; }; struct S1 __attribute__((noinline)) test_andw (struct S1 a, unsigned short b) { a.val &= b; return a; } --cut here-- gcc -O2: test_andw: movl %edi, %eax # 2 [c=4 l=2] *movsi_internal/0 andw %si, %ax # 9 [c=4 l=3] *andhi_1_slp ret # 23 [c=0 l=1] simple_return_internal