This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hello! Attached patch fixes PR 52908. There is no need to generate "fake" multiply instructions after reload, we can expand directly to MAC instructions. This approach even produced better assembly for a couple of testcases in gcc.target/i386 testsuite. 2012-05-09 Uros Bizjak <ubizjak@gmail.com> PR target/52908 * config/i386/sse.md (vec_widen_smult_hi_v4si): Expand using xop_pmacsdqh insn pattern instead of xop_mulv2div2di3_high. (vec_widen_smult_lo_v4si): Expand using xop_pmacsdql insn pattern instead of xop_mulv2div2di3_low. (xop_p<macs>dql): Fix vec_select selector. (xop_p<macs>dqh): Ditto. (xop_mulv2div2di3_low): Remove insn_and_split pattern. (xop_mulv2div2di3_high): Ditto. testsuite/ChangeLog: PR target/52908 * gcc.target/i386/xop-imul32widen-vector.c: Update scan-assembler directive to Scan for vpmuldq, not vpmacsdql. Bootstrapped and regression tested on x86_64-pc-linux-gnu {,-m32}, and tested on XOP target by Venkataramanan. Patch was committed to mainline SVN. The version, attached to the PR should be backported to other release branches, but another volunteer should do the backport, since I don't have access to XOP target. Also, please note that XOP horizontal add/subtract instructions (and possibly others) have vec_select parallel RTX in wrong endiannes. Uros.
Attachment:
p.diff.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |