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
Differential D6001
[X86][SSE] Vector integer/float conversion memory folding (cvttps2dq / cvttpd2dq) RKSimon on Oct 27 2014, 8:23 AM. Authored by
Details 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 TimelineComment Actions Hi Simon, Thanks for having split the patches. See my comments inlined. Cheers,
Comment Actions Updated 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. Comment Actions
Sounds good to me. Please add some CHECK-LABELs for the functions you added for testing. Thanks, |
While you are fixing this kind of issue, could you double check the opcode in there?
All the CVTs look suspicious to me.