https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89654
--- Comment #7 from Uroš Bizjak <ubizjak at gmail dot com> ---
(In reply to Uroš Bizjak from comment #6)
> (In reply to H.J. Lu from comment #4)
> > Is this a dup of PR 69693?
>
> Yes, indeed. The issue with too many moves remain, I'll open a new PR for
> that.
I'll also open a new PR due to difference with -march=haswell (---) and
-march=skylake (+++):
--- haswell/pr89654.s 2019-03-12 13:54:24.517146380 +0100
+++ skylake/pr89654.s 2019-03-12 13:57:39.792106411 +0100
@@ -6,8 +6,16 @@
foo:
.LFB0:
.cfi_startproc
- vmovq 4(%esp), %xmm0
- vpsllq $3, %xmm0, %xmm0
+ subl $28, %esp
+ .cfi_def_cfa_offset 32
+ movl 32(%esp), %eax
+ movl 36(%esp), %edx
+ movl %eax, (%esp)
+ movl %edx, 4(%esp)
+ vmovdqa (%esp), %xmm1
+ addl $28, %esp
+ .cfi_def_cfa_offset 4
+ vpsllq $3, %xmm1, %xmm0
vmovd %xmm0, %eax
vpextrd $1, %xmm0, %edx
ret