Split from http://reviews.llvm.org/D5981
Fixed an issue with the VCVTTPD2DQ / VCVTTPS2DQ instructions being incorrectly put in the 2 source operand folding tables instead of the 1 source operand and added the missing 256-bit AVX versions
Paths
| Differential D6001
[X86][SSE] Vector integer/float conversion memory folding (cvttps2dq / cvttpd2dq) ClosedPublic Authored by RKSimon on Oct 27 2014, 8:23 AM.
Details Summary Split from http://reviews.llvm.org/D5981 Fixed an issue with the VCVTTPD2DQ / VCVTTPS2DQ instructions being incorrectly put in the 2 source operand folding tables instead of the 1 source operand and added the missing 256-bit AVX versions
Diff Detail
Event TimelineRKSimon retitled this revision from Vector integer/float conversion memory folding (cvttps2dq / cvttpd2dq) to [X86][SSE] Vector integer/float conversion memory folding (cvttps2dq / cvttpd2dq).Oct 27 2014, 11:44 AM Comment Actions Hi Simon, Thanks for having split the patches. See my comments inlined. Cheers,
RKSimon edited edge metadata. Comment ActionsUpdated the patch to follow the test pattern used in http://reviews.llvm.org/D5981 Added the (v)cvtps2dq / (v)cvtpd2dq folds as well Comment Actions Many of the Int_CVT and CVT 'scalar' folds look suspicious and I wish to more thoroughly test them, but would prefer to do that separately from this patch. I found some rather poor code generation for non-AVX code for double -> int32 that needs fixing as well. qcolombet edited edge metadata. Comment Actions
Sounds good to me. Please add some CHECK-LABELs for the functions you added for testing. Thanks, This revision is now accepted and ready to land.Nov 6 2014, 1:32 PM
Revision Contents
Diff 15893 llvm/trunk/lib/Target/X86/X86InstrInfo.cpp
llvm/trunk/test/CodeGen/X86/avx1-stack-reload-folding.ll
|