re PR target/70799 (STV pass does not convert DImode shifts)
authorUros Bizjak <uros@gcc.gnu.org>
Tue, 25 Apr 2017 17:45:22 +0000 (19:45 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Tue, 25 Apr 2017 17:45:22 +0000 (19:45 +0200)
commit1913c8f63fba23103dff324669f581cb2248d98f
tree1fb47ede6b9255b5a1caa8acc2e339475776c3c8
parente602bbfc30cd7d40509edaba120429dc4a92cbce
re PR target/70799 (STV pass does not convert DImode shifts)

PR target/70799
* config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
Handle ASHIFTRT.
(dimode_scalar_chain::compute_convert_gain): Ditto.
(dimode_scalar_chain::make_vector_copies): Ditto.
(dimode_scalar_chain::convert_reg): Ditto.
(dimode_scalar_chain::convert_insn): Ditto.
* config/i386/sse.md (VI24_AVX512BW_1): Remove mode iterator.
(VI248_AVX512BW_1): New mode iterator.
(<mask_codefor>ashr<mode>3<mask_name>): Merge insn pattern with
<mask_codefor>ashrv2di3<mask_name> insn using VI248_AVX512BW_1
mode iterator.

testsuite/ChangeLog:

PR target/70799
* gcc.target/i386/pr70799-5.c: New test.

From-SVN: r247263
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/config/i386/sse.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr70799-5.c [new file with mode: 0644]