i386.c (ix86_expand_sse2_abs): Rename function arguments.
* config/i386/i386.c (ix86_expand_sse2_abs): Rename function arguments. Use gcc_unreachable for unhandled modes. Do not check results of expand_simple_binop. If not expanded to target, move the result. From-SVN: r204271
This commit is contained in:
parent
5e5f34bf63
commit
e5ccdfcd51
@ -1,3 +1,9 @@
|
||||
2013-10-31 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
* config/i386/i386.c (ix86_expand_sse2_abs): Rename function arguments.
|
||||
Use gcc_unreachable for unhandled modes. Do not check results of
|
||||
expand_simple_binop. If not expanded to target, move the result.
|
||||
|
||||
2013-10-31 Chung-Ju Wu <jasonwucj@gmail.com>
|
||||
Shiva Chen <shiva0217@gmail.com>
|
||||
|
||||
@ -131,9 +137,8 @@
|
||||
PR other/58545
|
||||
* reload1.c (update_eliminables_and_spill): New function, broken
|
||||
out of reload.
|
||||
(reload): Use it. Check for frame size change after frame
|
||||
size alignment, and call update_eliminables_and_spill first
|
||||
if continue-ing.
|
||||
(reload): Use it. Check for frame size change after frame size
|
||||
alignment, and call update_eliminables_and_spill first if continue-ing.
|
||||
|
||||
2013-10-30 Cong Hou <congh@google.com>
|
||||
|
||||
@ -162,9 +167,8 @@
|
||||
|
||||
2013-10-30 David Malcolm <dmalcolm@redhat.com>
|
||||
|
||||
* cgraphunit.c (analyze_functions): Split symtab_node
|
||||
declarations onto multiple lines to make things easier
|
||||
for rename_symtab.py.
|
||||
* cgraphunit.c (analyze_functions): Split symtab_node declarations
|
||||
onto multiple lines to make things easier for rename_symtab.py.
|
||||
|
||||
* symtab.c (symtab_dissolve_same_comdat_group_list): Likewise.
|
||||
(symtab_semantically_equivalent_p): Likewise.
|
||||
@ -198,10 +202,8 @@
|
||||
(struct ira_allocno) New member allocno_prefs.
|
||||
(ALLOCNO_PREFS): New macro.
|
||||
(ira_prefs, ira_prefs_num): New external vars.
|
||||
(ira_setup_alts, ira_get_dup_out_num, ira_debug_pref): New
|
||||
prototypes.
|
||||
(ira_debug_prefs, ira_debug_allocno_prefs, ira_create_pref):
|
||||
Ditto.
|
||||
(ira_setup_alts, ira_get_dup_out_num, ira_debug_pref): New prototypes.
|
||||
(ira_debug_prefs, ira_debug_allocno_prefs, ira_create_pref): Ditto.
|
||||
(ira_add_allocno_pref, ira_remove_pref, ira_remove_allocno_prefs):
|
||||
Ditto.
|
||||
(ira_add_allocno_copy_to_list): Remove prototype.
|
||||
@ -354,7 +356,8 @@
|
||||
BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_ARG_BND, BUILT_IN_CHKP_NARROW,
|
||||
BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER.
|
||||
* common.opt (fcheck-pointer-bounds): New.
|
||||
* toplev.c (process_options): Check Pointer Bounds Checker is supported.
|
||||
* toplev.c (process_options): Check Pointer Bounds Checker is
|
||||
supported.
|
||||
* doc/extend.texi: Document Pointer Bounds Checker built-in functions.
|
||||
|
||||
2013-10-30 Ilya Enkovich <ilya.enkovich@intel.com>
|
||||
@ -391,11 +394,10 @@
|
||||
2013-10-29 Andrew Pinski <apinski@cavium.com>
|
||||
|
||||
* tree-ssa-ifcombine.c: Include rtl.h and tm_p.h.
|
||||
(ifcombine_ifandif): Handle cases where
|
||||
maybe_fold_and_comparisons fails, combining the branches
|
||||
anyways.
|
||||
(tree_ssa_ifcombine): Inverse the order of
|
||||
the basic block walk, increases the number of combinings.
|
||||
(ifcombine_ifandif): Handle cases where maybe_fold_and_comparisons
|
||||
fails, combining the branches anyways.
|
||||
(tree_ssa_ifcombine): Inverse the order of the basic block walk,
|
||||
increases the number of combinings.
|
||||
* gimple.h (gsi_start_nondebug_after_labels_bb): New function.
|
||||
|
||||
2013-10-29 Mike Stump <mikestump@comcast.net>
|
||||
@ -489,7 +491,7 @@
|
||||
(CILK_SYNC_STMT): Added documentation for _Cilk_sync.
|
||||
* passes.texi (Cilk Keywords): New section that describes the compiler
|
||||
code changes for handling Cilk Keywords.
|
||||
|
||||
|
||||
2013-10-29 David Malcolm <dmalcolm@redhat.com>
|
||||
|
||||
Patch autogenerated by refactor_symtab.py from
|
||||
@ -898,8 +900,7 @@
|
||||
(varpool_remove_node): Likewise.
|
||||
(varpool_node_for_decl): Likewise.
|
||||
(varpool_create_empty_node): Likewise.
|
||||
* config/i386/i386.c (ix86_generate_version_dispatcher_body):
|
||||
Likewise.
|
||||
* config/i386/i386.c (ix86_generate_version_dispatcher_body): Likewise.
|
||||
(ix86_get_function_versions_dispatcher): Likewise.
|
||||
|
||||
2013-10-29 David Malcolm <dmalcolm@redhat.com>
|
||||
@ -927,13 +928,13 @@
|
||||
* symtab.c (symtab_hash): Change symtab_node_def to symtab_node_base.
|
||||
(assembler_name_hash): Likewise.
|
||||
|
||||
2013-10-29 Martin Liska <marxin.liska@gmail.com>
|
||||
2013-10-29 Martin Liska <marxin.liska@gmail.com>
|
||||
|
||||
* doc/tree-ssa.texi (gimple_phi_result): Document.
|
||||
(gimple_phi_num_args, gimple_phi_arg): Likewise.
|
||||
(gimple_phi_arg_edge, gimple_phi_arg_def): Likewise.
|
||||
(PHI_RESULT, PHI_NUM_ARGS): Remove.
|
||||
(PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF): Likewise.
|
||||
* doc/tree-ssa.texi (gimple_phi_result): Document.
|
||||
(gimple_phi_num_args, gimple_phi_arg): Likewise.
|
||||
(gimple_phi_arg_edge, gimple_phi_arg_def): Likewise.
|
||||
(PHI_RESULT, PHI_NUM_ARGS): Remove.
|
||||
(PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF): Likewise.
|
||||
|
||||
2013-10-29 Andrew MacLeod <amacleod@redhat.com>
|
||||
|
||||
@ -1050,8 +1051,7 @@
|
||||
fields of the type (including inherited ones).
|
||||
(write_func_for_structure): Don't write fns for subclasses, only
|
||||
for the ultimate base class within an inheritance hierarchy.
|
||||
Subclasses-marking will be handled by the base class marking
|
||||
functions.
|
||||
Subclasses-marking will be handled by the base class marking functions.
|
||||
(write_types): Likewise.
|
||||
(write_local_func_for_structure): Likewise.
|
||||
(USED_BY_TYPED_GC_P): Emit allocators for subclasses that have
|
||||
@ -1213,7 +1213,6 @@
|
||||
(VEC_PERM_AVX2): Ditto.
|
||||
(VEC_PERM_CONST): Ditto.
|
||||
|
||||
|
||||
2013-10-28 Joern Rennecke <joern.rennecke@embecosm.com>
|
||||
|
||||
* config/arc/arc.c (arc_ccfsm_post_advance):
|
||||
@ -1310,8 +1309,7 @@
|
||||
(rs6000_legitimate_offset_address_p): Call
|
||||
legitimate_constant_pool_address_p in strict mode for LRA.
|
||||
(rs6000_legitimate_address_p): Ditto.
|
||||
(legitimate_lo_sum_address_p): Add code for LRA.
|
||||
Use lra_in_progress.
|
||||
(legitimate_lo_sum_address_p): Add code for LRA. Use lra_in_progress.
|
||||
(rs6000_emit_move): Add LRA version of code to generate load/store
|
||||
of SDmode values.
|
||||
(rs6000_secondary_memory_needed_mode): New.
|
||||
@ -1319,8 +1317,7 @@
|
||||
(rs6000_secondary_reload_class): Return NO_REGS for LRA for
|
||||
constants, memory, and FP registers.
|
||||
(rs6000_lra_p): New.
|
||||
* config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): New
|
||||
macro.
|
||||
* config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): New macro.
|
||||
* config/rs6000/rs6000.opt (mlra): New option.
|
||||
* lra-spills.c (lra_final_code_change): Remove useless move insns.
|
||||
|
||||
@ -1379,8 +1376,8 @@
|
||||
2013-10-25 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
PR rtl-optimization/58831
|
||||
* alias.c (init_alias_analysis): At the beginning of each iteration, set
|
||||
the reg_seen[N] bit if static_reg_base_value[N] is non-null.
|
||||
* alias.c (init_alias_analysis): At the beginning of each iteration,
|
||||
set the reg_seen[N] bit if static_reg_base_value[N] is non-null.
|
||||
|
||||
2013-10-25 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
|
@ -42020,51 +42020,54 @@ ix86_bnd_prefixed_insn_p (rtx insn ATTRIBUTE_UNUSED)
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Calculate integer abs() using only SSE2 instructions. */
|
||||
|
||||
void
|
||||
ix86_expand_sse2_abs (rtx op0, rtx op1)
|
||||
ix86_expand_sse2_abs (rtx target, rtx input)
|
||||
{
|
||||
enum machine_mode mode = GET_MODE (op0);
|
||||
rtx tmp0, tmp1;
|
||||
enum machine_mode mode = GET_MODE (target);
|
||||
rtx tmp0, tmp1, x;
|
||||
|
||||
switch (mode)
|
||||
{
|
||||
/* For 32-bit signed integer X, the best way to calculate the absolute
|
||||
value of X is (((signed) X >> (W-1)) ^ X) - ((signed) X >> (W-1)). */
|
||||
case V4SImode:
|
||||
tmp0 = expand_simple_binop (mode, ASHIFTRT, op1,
|
||||
tmp0 = expand_simple_binop (mode, ASHIFTRT, input,
|
||||
GEN_INT (GET_MODE_BITSIZE
|
||||
(GET_MODE_INNER (mode)) - 1),
|
||||
(GET_MODE_INNER (mode)) - 1),
|
||||
NULL, 0, OPTAB_DIRECT);
|
||||
if (tmp0)
|
||||
tmp1 = expand_simple_binop (mode, XOR, op1, tmp0,
|
||||
NULL, 0, OPTAB_DIRECT);
|
||||
if (tmp0 && tmp1)
|
||||
expand_simple_binop (mode, MINUS, tmp1, tmp0,
|
||||
op0, 0, OPTAB_DIRECT);
|
||||
tmp1 = expand_simple_binop (mode, XOR, tmp0, input,
|
||||
NULL, 0, OPTAB_DIRECT);
|
||||
x = expand_simple_binop (mode, MINUS, tmp1, tmp0,
|
||||
target, 0, OPTAB_DIRECT);
|
||||
break;
|
||||
|
||||
/* For 16-bit signed integer X, the best way to calculate the absolute
|
||||
value of X is max (X, -X), as SSE2 provides the PMAXSW insn. */
|
||||
case V8HImode:
|
||||
tmp0 = expand_unop (mode, neg_optab, op1, NULL_RTX, 0);
|
||||
if (tmp0)
|
||||
expand_simple_binop (mode, SMAX, op1, tmp0, op0, 0,
|
||||
OPTAB_DIRECT);
|
||||
tmp0 = expand_unop (mode, neg_optab, input, NULL_RTX, 0);
|
||||
|
||||
x = expand_simple_binop (mode, SMAX, tmp0, input,
|
||||
target, 0, OPTAB_DIRECT);
|
||||
break;
|
||||
|
||||
/* For 8-bit signed integer X, the best way to calculate the absolute
|
||||
value of X is min ((unsigned char) X, (unsigned char) (-X)),
|
||||
as SSE2 provides the PMINUB insn. */
|
||||
case V16QImode:
|
||||
tmp0 = expand_unop (mode, neg_optab, op1, NULL_RTX, 0);
|
||||
if (tmp0)
|
||||
expand_simple_binop (V16QImode, UMIN, op1, tmp0, op0, 0,
|
||||
OPTAB_DIRECT);
|
||||
tmp0 = expand_unop (mode, neg_optab, input, NULL_RTX, 0);
|
||||
|
||||
x = expand_simple_binop (V16QImode, UMIN, tmp0, input,
|
||||
target, 0, OPTAB_DIRECT);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
gcc_unreachable ();
|
||||
}
|
||||
|
||||
if (x != target)
|
||||
emit_move_insn (target, x);
|
||||
}
|
||||
|
||||
/* Expand an insert into a vector register through pinsr insn.
|
||||
|
@ -1,6 +1,6 @@
|
||||
2013-10-31 Edward Smith-Rowland <3dw4rd@verizon.net>
|
||||
|
||||
Implement C++14 digit separators.
|
||||
Implement C++14 digit separators.
|
||||
* g++.dg/cpp1y/digit-sep.C: New.
|
||||
* g++.dg/cpp1y/digit-sep-neg.C: New.
|
||||
* g++.dg/cpp1y/digit-sep-cxx11-neg.C: New.
|
||||
@ -29,19 +29,6 @@
|
||||
2013-10-18 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
PR c++/58466
|
||||
The Velvet Underground and Nico Full album vinyl LP
|
||||
vinylanalog vinylanalog·13 videos
|
||||
581
|
||||
150,561
|
||||
Like 1,087 Dislike 6
|
||||
|
||||
Published on Jun 18, 2013
|
||||
|
||||
The Velvet Underground and Nico legendary debut record produced by Andy Warhol (1967) presented in a non-modified recording of Verve V6-5008 vinyl LP. All efforts were made to realistically reproduce the natural vinyl stereo LP sound, so record levels were restrained and album noise is present.
|
||||
|
||||
NOTE: THIS VIDEO IS FOR EDUCATION PURPOSES. ANY AND ALL COPYRIGHTS BELONG TO THE RIGHTFUL ARTISTS AND OWNERS.
|
||||
|
||||
|
||||
* g++.dg/cpp0x/variadic145.C: New.
|
||||
|
||||
* g++.dg/cpp0x/sfinae49.C: New.
|
||||
@ -80,7 +67,7 @@ NOTE: THIS VIDEO IS FOR EDUCATION PURPOSES. ANY AND ALL COPYRIGHTS BELONG TO THE
|
||||
|
||||
2013-10-30 Mikael Pettersson <mikpe@it.uu.se>
|
||||
|
||||
* PR rtl-optimization/58369
|
||||
PR rtl-optimization/58369
|
||||
* g++.dg/torture/pr58369.C: New test.
|
||||
|
||||
2013-10-30 Tobias Burnus <burnus@net-b.de>
|
||||
@ -133,7 +120,7 @@ NOTE: THIS VIDEO IS FOR EDUCATION PURPOSES. ANY AND ALL COPYRIGHTS BELONG TO THE
|
||||
* gcc.dg/ira-shrinkwrap-prep-2.c: Likewise.
|
||||
|
||||
2013-10-29 Andrew Pinski <apinski@cavium.com>
|
||||
Zhenqiang Chen <zhenqiang.chen@linaro.org>
|
||||
Zhenqiang Chen <zhenqiang.chen@linaro.org>
|
||||
|
||||
* gcc.dg/tree-ssa/ssa-ifcombine-ccmp-1.c: New test case.
|
||||
* gcc.dg/tree-ssa/ssa-ifcombine-ccmp-2.c: New test case.
|
||||
@ -2429,6 +2416,7 @@ NOTE: THIS VIDEO IS FOR EDUCATION PURPOSES. ANY AND ALL COPYRIGHTS BELONG TO THE
|
||||
|
||||
2013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
|
||||
|
||||
PR rtl-optimization/58079
|
||||
* gcc.dg/torture/pr58079.c: New test.
|
||||
|
||||
2013-08-07 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
Loading…
Reference in New Issue
Block a user