We are being inconsistent with these instructions (and all their variants.....) with a random mix of them using the default float domain.
I can add the MMX variants as well if necessary.
Paths
| Differential D27419
[X86][SSE] Consistently set MOVD/MOVQ load/store/move instructions to integer domain ClosedPublic Authored by RKSimon on Dec 5 2016, 9:51 AM.
Details Summary We are being inconsistent with these instructions (and all their variants.....) with a random mix of them using the default float domain. I can add the MMX variants as well if necessary.
Diff Detail
Event Timeline
Comment Actions Should the ones that use FR32 and FR64 in their types stay in floating point domain? Doesn't that make them likely to be near floating point code? Comment Actions
It increases the likelihood that instructions that use the movd/movq will be in the float domain, but the movd/movq themselves will still be on the integer unit - often in cases where we should have been using movss/movsd. A lot of this looks due to us missing so many of the movd/movq instruction enums from X86InstrInfo::getExecutionDomain/X86InstrInfo::setExecutionDomain - ideally we'd prune some of these first but I seem to recall it not being an easy task...... This revision is now accepted and ready to land.Dec 6 2016, 11:59 PM Closed by commit rL288902: [X86][SSE] Consistently set MOVD/MOVQ load/store/move instructions to integer… (authored by RKSimon). · Explain WhyDec 7 2016, 4:21 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 80281 lib/Target/X86/X86InstrAVX512.td
lib/Target/X86/X86InstrSSE.td
test/CodeGen/X86/2012-1-10-buildvector.ll
test/CodeGen/X86/avx2-vbroadcast.ll
test/CodeGen/X86/clear_upper_vector_element_bits.ll
test/CodeGen/X86/exedepsfix-broadcast.ll
test/CodeGen/X86/extractelement-index.ll
test/CodeGen/X86/fp-logic.ll
test/CodeGen/X86/masked_memop.ll
test/CodeGen/X86/merge-consecutive-loads-128.ll
test/CodeGen/X86/pshufb-mask-comments.ll
test/CodeGen/X86/scalar-int-to-fp.ll
test/CodeGen/X86/uint_to_fp-2.ll
test/CodeGen/X86/vec_fp_to_int.ll
test/CodeGen/X86/vec_ins_extract-1.ll
|
Any idea why this vmovaps hasn't changed?