On Mon, May 20, 2019 at 2:52 PM Uros Bizjak <ubiz...@gmail.com> wrote: > > On Mon, May 20, 2019 at 11:39 PM Jeff Law <l...@redhat.com> wrote: > > > > On 5/20/19 3:36 PM, H.J. Lu wrote: > > > With SSE emulation of MMX intrinsics in 64-bit mode, > > > > > > --- > > > __v8qi test () > > > { > > > __v8qi mm0 = {1,2,3,4,5,6,7,8}; > > > __v8qi mm1 = {11,22,33,44,55,66,77,88}; > > > volatile __m64 x; > > > > > > x = _mm_add_pi8 (mm0, mm1); > > > > > > return x; > > > } > > > --- > > > > > > is compiled into > > > > > > movq .LC0(%rip), %xmm0 > > > movq .LC1(%rip), %xmm1 > > > paddb %xmm1, %xmm0 > > > movq %xmm0, -8(%rsp) > > > movq -8(%rsp), %xmm0 > > > ret > > > > > > instead of > > > > > > movq .LC1(%rip), %mm0 > > > paddb .LC0(%rip), %mm0 > > > movq %mm0, -8(%rsp) > > > movq -8(%rsp), %xmm0 > > > ret > > > > > > Adjust gcc.target/i386/pr22076.c for 64-bit. > > > > > > * gcc.target/i386/pr22076.c: Adjusted for 64-bit. > > Well, it looks like you're just papering over a code quality regression? > > Or am I missing something? > > We have to load 64bit value from memory to 128 bit XMM register using movq. > > OTOH, we could just use -mno-sse2 which disables XMM emulation. >
Works for me. -- H.J.