https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70873
Bug ID: 70873 Summary: [GCC7 Regressio] 20% performance regression at 482.sphinx3 after r235442 with -O2 -m32 on Haswell. Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: ysrumyan at gmail dot com Target Milestone: --- This degradation is caused by known issue with partial register dependency: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57954 and can be reproduced with the attached simple test-case: before fix vxorpd %xmm4, %xmm4, %xmm4 vcvtss2sd (%esi,%eax,4), %xmm4, %xmm4 after fix vxorpd %xmm6, %xmm6, %xmm6 vcvtss2sd (%esi,%eax,4), %xmm6, %xmm7 I assume that register renaming must not split such register live range but simply consider it as one.