aboutsummaryrefslogtreecommitdiff
path: root/gcc/fold-const.c
diff options
context:
space:
mode:
authorUros Bizjak <ubizjak@gmail.com>2016-04-24 22:58:02 +0200
committerUros Bizjak <uros@gcc.gnu.org>2016-04-24 22:58:02 +0200
commit55284a77e6cb0064c69e28b3121e7ae2a9f6d871 (patch)
treef2b87899a19898a4774cab674e5417030b44ffc2 /gcc/fold-const.c
parenta635cdb2cc8079c72ffece4f5614244cf78b10a2 (diff)
downloadgcc-55284a77e6cb0064c69e28b3121e7ae2a9f6d871.zip
gcc-55284a77e6cb0064c69e28b3121e7ae2a9f6d871.tar.gz
gcc-55284a77e6cb0064c69e28b3121e7ae2a9f6d871.tar.bz2
i386-protos.h (standard_sse_constant_p): Add machine_mode argument.
* config/i386/i386-protos.h (standard_sse_constant_p): Add machine_mode argument. * config/i386/i386.c (standard_sse_constant_p): Return 2 for constm1_rtx operands. For VOIDmode constants, get mode from pred_mode. Check mode size if the mode is supported by ABI. (standard_sse_constant_opcode): Do not use standard_constant_p. Strictly check ABI support for all-ones operands. (ix86_legitimate_constant_p): Handle TImode, OImode and XImode immediates. Update calls to standard_sse_constant_p. (ix86_expand_vector_move): Update calls to standard_sse_constant_p. (ix86_rtx_costs): Ditto. * config/i386/i386.md (*movxi_internal_avx512f): Use nonimmediate_or_sse_const_operand instead of vector_move_operand. Use (v,BC) alternative instead of (v,C). Use register_operand checks instead of MEM_P. (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead of vector_move_operand. Add (v,BC) alternative and corresponding avx2 isa attribute. Use register_operand checks instead of MEM_P. (*movti_internal): Use nonimmediate_or_sse_const_operand for TARGET_SSE. Improve TARGET_SSE insn constraint. Add (v,BC) alternative and corresponding sse2 isa attribute. (*movtf_internal, *movdf_internal, *movsf_interal): Update calls to standard_sse_constant_p. (FP constant splitters): Ditto. * config/i386/constraints.md (BC): Do not use standard_sse_constant_p. (C): Ditto. * config/i386/predicates.md (constm1_operand): Remove. (nonimmediate_or_sse_const_operand): Rewrite using RTX. * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use vector_all_ones_operand instead of constm1_operand. Co-Authored-By: H.J. Lu <hongjiu.lu@intel.com> From-SVN: r235396
Diffstat (limited to 'gcc/fold-const.c')
0 files changed, 0 insertions, 0 deletions