MOVSD/MOVSS take a 128-bit register and a FR32/FR64 register input, the commutation code wasn't take this into account leading to verification errors.
This patch inserts a vreg copy mi to ensure that the registers are correct.
Fix for PR30607
Paths
| Differential D25280
[X86][SSE] Update register class during MOVSD/MOVSS - BLENDPD/BLENDPS commutation ClosedPublic Authored by RKSimon on Oct 5 2016, 7:22 AM.
Details Summary MOVSD/MOVSS take a 128-bit register and a FR32/FR64 register input, the commutation code wasn't take this into account leading to verification errors. This patch inserts a vreg copy mi to ensure that the registers are correct. Fix for PR30607
Diff Detail
Event TimelineComment Actions Great! It solves the problem I saw and I didn't see any regressions in the testing I've done so far with the patch applied. This revision is now accepted and ready to land.Oct 6 2016, 3:13 PM Closed by commit rL283539: [X86][SSE] Update register class during MOVSD/MOVSS - BLENDPD/BLENDPS… (authored by RKSimon). · Explain WhyOct 7 2016, 10:45 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 73645 lib/Target/X86/X86InstrInfo.cpp
test/CodeGen/X86/coalesce_commute_movsd.ll
|