[Bug rtl-optimization/87718] [9 Regression] FAIL: gcc.target/i386/avx512dq-concatv2si-1.c
vmakarov at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Nov 19 19:12:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87718
--- Comment #6 from Vladimir Makarov <vmakarov at gcc dot gnu.org> ---
The culprit for the bad code generation is the following insn description
(define_insn "*movsi_internal"
[(set (match_operand:SI 0 "nonimmediate_operand"
"=r,m ,*y,*y,?*y,?m,?r,?*y,*v,*v,*v,m ,?r,?*v,*k,*k ,*rm")
(match_operand:SI 1 "general_operand"
"g ,re,C ,*y,m ,*y,*y,r ,C ,*v,m ,*v,*v,r ,*r,*km,*k"))]
Alternatives with sse regs are not considered at all (hint *) for cost
calculation even if one operand is sse hard reg. And therefore sse class for
another operand with pseudo is too costly.
Removing the hints is not a solution. I believe we will have even more
problems with GCC testsuite. So I am trying to solve it with specific
treatment of moves for cost calculations. The patch I am working on solves the
PR but currently creates a few GCC testsuite failures (unexpected but correct
code generation). So I am continuing to work on the PR.
More information about the Gcc-bugs
mailing list