[Bug rtl-optimization/89654] [8/9 Regression] Invalid reload with -march=skylake -m32
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
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
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
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
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
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
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.