[Bug rtl-optimization/89654] [8/9 Regression] Invalid reload with -march=skylake -m32

2019-03-12 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89654

--- Comment #7 from Uroš Bizjak  ---
(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
+   movl32(%esp), %eax
+   movl36(%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

[Bug rtl-optimization/89654] [8/9 Regression] Invalid reload with -march=skylake -m32

2019-03-12 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89654

--- Comment #6 from Uroš Bizjak  ---
(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.

[Bug rtl-optimization/89654] [8/9 Regression] Invalid reload with -march=skylake -m32

2019-03-12 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89654

H.J. Lu  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #5 from H.J. Lu  ---
Dup.

*** This bug has been marked as a duplicate of bug 69693 ***

[Bug rtl-optimization/89654] [8/9 Regression] Invalid reload with -march=skylake -m32

2019-03-12 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89654

--- Comment #4 from H.J. Lu  ---
Is this a dup of PR 69693?

[Bug rtl-optimization/89654] [8/9 Regression] Invalid reload with -march=skylake -m32

2019-03-11 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89654

Martin Liška  changed:

   What|Removed |Added

 CC||hubicka at gcc dot gnu.org

--- Comment #3 from Martin Liška  ---
Apparently started with r253934:

foo:
.LFB0:
.cfi_startproc
vmovq   4(%esp), %xmm0
vpsllq  $3, %xmm0, %xmm0
vmovd   %xmm0, %eax
vpextrd $1, %xmm0, %edx
ret
.cfi_endproc

while the previous revision generates:

foo:
.LFB0:
.cfi_startproc
pushl   %ebx
.cfi_def_cfa_offset 8
.cfi_offset 3, -8
movl8(%esp), %ecx
movl12(%esp), %ebx
movl%ecx, %eax
movl%ebx, %edx
sall$3, %eax
popl%ebx
.cfi_restore 3
.cfi_def_cfa_offset 4
shldl   $3, %ecx, %edx
ret
.cfi_endproc

[Bug rtl-optimization/89654] [8/9 Regression] Invalid reload with -march=skylake -m32

2019-03-11 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89654

--- Comment #2 from Uroš Bizjak  ---
Without STV, there are too many moves. -O2 -m32 -mno-stv should generate
something like:

movl4(%esp), %eax
movl8(%esp), %edx
shldl   $3, %eax, %edx
shll$3, %eax
retl

[Bug rtl-optimization/89654] [8/9 Regression] Invalid reload with -march=skylake -m32

2019-03-11 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89654

Jakub Jelinek  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2019-03-11
 CC||hjl.tools at gmail dot com,
   ||jakub at gcc dot gnu.org,
   ||vmakarov at gcc dot gnu.org
   Target Milestone|--- |8.4
Summary|Invalid reload with |[8/9 Regression] Invalid
   |-march=skylake -m32 |reload with -march=skylake
   ||-m32
 Ever confirmed|0   |1

--- Comment #1 from Jakub Jelinek  ---
7.x emits with -O2 -march=skylake -m32 following:
pushl   %ebx
movl8(%esp), %ecx
movl12(%esp), %ebx
movl%ecx, %eax
movl%ebx, %edx
sall$3, %eax
popl%ebx
shldl   $3, %ecx, %edx
ret
so seems to be fine.