aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-12-05gimple-loop-interchange.cc (struct induction): Rename fields.devel/gimple-linterchangeBin Cheng1-29/+20
2017-12-05 Bin Cheng <bin.cheng@arm.com> * gimple-loop-interchange.cc (struct induction): Rename fields. (dump_induction, loop_cand::analyze_induction_var): Update uses. (loop_cand::undo_simple_reduction): Ditto. (tree_loop_interchange::map_inductions_to_loop): Ditto. (tree_loop_interchange::can_interchange_loops): Delete. (tree_loop_interchange::interchange): Inline can_interchange_loops. From-SVN: r255419
2017-12-05gimple-loop-interchange.cc (AVG_LOOP_NITER): Remove.Richard Biener1-72/+53
2017-12-05 Richard Biener <rguenther@suse.de> * gimple-loop-interchange.cc (AVG_LOOP_NITER): Remove. (loop_cand::supported_operations): Simplify. (loop_cand::analyze_iloop_reduction_var): Use m_exit. (loop_cand::analyze_oloop_reduction_var): Likewise. (loop_cand::analyze_lcssa_phis): Likewise. (find_deps_in_bb_for_stmt): Use gimple_seq_add_stmt_without_update. (loop_cand::undo_simple_reduction): Likewise, properly release virtual defs. (tree_loop_interchange::interchange_loops): Likewise. Move code to innner loop here. (tree_loop_interchange::map_inductions_to_loop): Remove code moving code to inner loop. (insert_pos_at_inner_loop): Inline into single caller... (tree_loop_interchange::move_code_to_inner): ...here. Properly release virtual defs. (proper_loop_form_for_interchange): Properly analyze/instantiate SCEV. (prepare_perfect_loop_nest): Do not explicitely allocate vectors. From-SVN: r255416
2017-12-05loop-interchange-12.c: New testcase.Richard Biener2-0/+103
2017-12-05 Richard Biener <rguenther@suse.de> * gcc.dg/tree-ssa/loop-interchange-12.c: New testcase. * gcc.dg/tree-ssa/loop-interchange-13.c: Likewise. From-SVN: r255405
2017-12-05gimple-loop-interchange.cc (loop_cand::classify_simple_reduction): Simplify.Richard Biener1-49/+23
2017-12-05 Richard Biener <rguenther@suse.de> * gimple-loop-interchange.cc (loop_cand::classify_simple_reduction): Simplify. (loop_cand::analyze_iloop_reduction_var): Reject dead reductions. (loop_cand::analyze_oloop_reduction_var): Likewise. Simplify. (tree_loop_interchange::interchange_loops): Properly analyze scalar evolution before instantiating a SCEV. From-SVN: r255402
2017-12-04tree-vectorizer.h (check_reduction_path): Declare.Richard Biener7-141/+220
2017-12-04 Richard Biener <rguenther@suse.de> * tree-vectorizer.h (check_reduction_path): Declare. * tree-vect-loop.c (check_reduction_path): New function, split out from ... (vect_is_simple_reduction): ... here. * gimple-loop-interchange.cc: Include tree-vectorizer.h. (loop_cand::analyze_iloop_reduction_var): Use single_imm_use. Properly check for a supported reduction operation and a valid expression if the reduction covers multiple stmts. (prepare_perfect_loop_nest): Simpify allocation. (pass_linterchange::execute): Likewise. * gcc.dg/tree-ssa/loop-interchange-1.c: Add fast-math flags. * gcc.dg/tree-ssa/loop-interchange-1b.c: New test variant. * gcc.dg/tree-ssa/loop-interchange-4.c: XFAIL. From-SVN: r255383
2017-12-01gimple-loop-interchange.cc (is-a.h): New header file.Bin Cheng1-18/+7
2017-12-01 Bin Cheng <bin.cheng@arm.com> * gimple-loop-interchange.cc (is-a.h): New header file. (loop_cand::find_reduction_by_stmt): Use dyn_cast instead of is_a<> and as_a<>. (loop_cand::analyze_iloop_reduction_var): Ditto. (loop_cand::analyze_oloop_reduction_var): Ditto. Check gimple stmt against phi node directly. From-SVN: r255310
2017-12-01gimple-loop-interchange.cc (estimate_val_by_simplify_replace): Remove.Richard Biener1-87/+66
2017-12-01 Richard Biener <rguenther@suse.de> * gimple-loop-interchange.cc (estimate_val_by_simplify_replace): Remove. (compute_access_stride): Rewrite using instantiate_scev, remove constant substitution. (should_interchange_loops): Adjust for non-constant strides. From-SVN: r255306
2017-12-01pr81303.f: New testcase.Richard Biener1-0/+44
2017-12-01 Richard Biener <rguenther@suse.de> * gfortran.dg/pr81303.f: New testcase. From-SVN: r255304
2017-11-28Makefile.in (gimple-loop-interchange.o): New object file.Bin Cheng21-8/+2786
2017-11-28 Bin Cheng <bin.cheng@arm.com> * Makefile.in (gimple-loop-interchange.o): New object file. * common.opt (floop-interchange): Reuse the option from graphite. * doc/invoke.texi (-floop-interchange): Ditto. New document. * gimple-loop-interchange.cc: New file. * params.def (PARAM_LOOP_INTERCHANGE_MAX_NUM_STMTS): New parameter. (PARAM_LOOP_INTERCHANGE_STRIDE_RATIO): New parameter. * passes.def (pass_linterchange): New pass. * timevar.def (TV_LINTERCHANGE): New time var. * tree-pass.h (make_pass_linterchange): New declaration. * tree-ssa-loop-ivcanon.c (create_canonical_iv): Change to external interchange. Record IV before/after increment in new parameters. * tree-ssa-loop-ivopts.h (create_canonical_iv): New declaration. gcc/testsuite 2017-11-28 Bin Cheng <bin.cheng@arm.com> * gcc.dg/tree-ssa/loop-interchange-1.c: New test. * gcc.dg/tree-ssa/loop-interchange-2.c: New test. * gcc.dg/tree-ssa/loop-interchange-3.c: New test. * gcc.dg/tree-ssa/loop-interchange-4.c: New test. * gcc.dg/tree-ssa/loop-interchange-5.c: New test. * gcc.dg/tree-ssa/loop-interchange-6.c: New test. * gcc.dg/tree-ssa/loop-interchange-7.c: New test. * gcc.dg/tree-ssa/loop-interchange-8.c: New test. * gcc.dg/tree-ssa/loop-interchange-9.c: New test. * gcc.dg/tree-ssa/loop-interchange-10.c: New test. * gcc.dg/tree-ssa/loop-interchange-11.c: New test. From-SVN: r255207
2017-11-28tree-ssa-dce.c (simple_dce_from_worklist): Move and rename from ↵Bin Cheng3-59/+81
tree-ssa-pre.c::remove_dead_inserted_code. 2017-11-28 Bin Cheng <bin.cheng@arm.com> * tree-ssa-dce.c (simple_dce_from_worklist): Move and rename from tree-ssa-pre.c::remove_dead_inserted_code. * tree-ssa-dce.h: New file. * tree-ssa-pre.c (tree-ssa-dce.h): Include new header file. (remove_dead_inserted_code): Move and rename to function tree-ssa-dce.c::simple_dce_from_worklist. (pass_pre::execute): Update use. From-SVN: r255206
2017-11-27gimple-fold.c (gimple_fold_builtin_memory_op): Remove dead code, refactor a bit.Richard Biener2-50/+16
2017-11-27 Richard Biener <rguenther@suse.de> * gimple-fold.c (gimple_fold_builtin_memory_op): Remove dead code, refactor a bit. From-SVN: r255172
2017-11-27tree.c (wide_int_to_tree): Free discarded INTEGER_CST.Richard Biener2-4/+23
2017-11-27 Richard Biener <rguenther@suse.de> * tree.c (wide_int_to_tree): Free discarded INTEGER_CST. (type_hash_canon): Also clear int_cst_hash_table entry for TYPE_MIN/MAX_VALUE. (build_nonstandard_integer_type): Hash all TYPE_MAX_VALUEs. From-SVN: r255171
2017-11-27extend.texi: Add -A suffix (ARMv8*-A, ARMv7-A).Tamar Christina4-21/+27
2017-11-27 Tamar Christina <tamar.christina@arm.com> * doc/extend.texi: Add -A suffix (ARMv8*-A, ARMv7-A). * doc/invoke.texi: Add -A suffix (ARMv8*-A, ARMv7-A). * doc/sourcebuild.texi: Add -A suffix (ARMv8*-A, ARMv7-A). From-SVN: r255169
2017-11-27re PR c++/81675 (attribute(noreturn) of destructor in :? not honored)Jakub Jelinek4-8/+55
PR c++/81675 * cp-gimplify.c (cp_fold) <case COND_EXPR>: Don't return immediately for VOID_TYPE_P COND_EXPRs, instead fold the operands and if op0 is INTEGER_CST, ensure that both op1 and op2 are non-NULL and fall through into normal folding, otherwise just rebuild x if any op changed. * g++.dg/warn/pr81675.C: New test. From-SVN: r255167
2017-11-27Fix UB in hash-map.hMarkus Trippelsdorf2-1/+6
bootstrap-ubsan shows: gcc/hash-map.h:277:19: runtime error: member access within null pointer of type 'struct hash_map' Fix the issue by returning early. From-SVN: r255166
2017-11-27cfgloop.h (struct loop): Document usage of USHRT_MAX for unroll.Eric Botcazou13-13/+70
* cfgloop.h (struct loop): Document usage of USHRT_MAX for unroll. * loop-unroll.c (decide_unroll_constant_iterations): Implement it. (decide_unroll_runtime_iterations): Likewise. (decide_unroll_stupid): Likewise. From-SVN: r255165
2017-11-27Fix code generation for buildtin_longjmp with CET.Igor Tsimbalist5-20/+76
According to the description of inssp instruction from Intel CET it adusts the shadow stack pointer (ssp) only by value in the range of [0..255]. As a number of adjustment could be greater than 255 there should be a loop generated to adjust ssp. gcc/ * config/i386/i386.md: Add a loop with incssp. * testsuite/gcc.target/i386/cet-sjlj-1.c: Fix test. * testsuite/gcc.target/i386/cet-sjlj-4.c: Likewise. From-SVN: r255164
2017-11-27[PR 81248] Fix ipa-sra size checkMartin Jambor8-36/+84
2017-11-27 Martin Jambor <mjambor@suse.cz> PR tree-optimization/81248 * tree-sra.c (splice_param_accesses): Remove size check. (decide_one_param_reduction): Fix size check. * gimple-pretty-print.c (dump_profile): Silence warning. * params.def (PARAM_IPA_SRA_PTR_GROWTH_FACTOR): Adjust description. testsuite/ * g++.dg/ipa/pr81248.C: New test. * gcc.dg/tree-ssa/ssa-pre-31.c: Disable IPA-SRA. * gcc/testsuite/gcc.dg/ipa/ipcp-cstagg-2.c: Likewise. From-SVN: r255163
2017-11-27null-8.C (bar): New function.Jakub Jelinek2-2/+12
* g++.dg/ubsan/null-8.C (bar): New function. (foo): Use bar instead of __builtin_printf. From-SVN: r255162
2017-11-27re PR debug/81307 (g++.dg/debug/debug9.C -gstabs FAILs)Jakub Jelinek5-25/+170
PR debug/81307 * dbxout.c (lastlineno): New variable. (dbx_debug_hooks): Use dbxout_switch_text_section as switch_text_section debug hook. (dbxout_function_end): Switch to current_function_section rather than function_section. If crtl->has_bb_partition, output just one N_FUN, depending on in_cold_section_p. (dbxout_source_line): Remember last lineno in lastlineno. (dbxout_switch_text_section): New function. (dbxout_function_decl): Adjust dbxout_block caller. (dbx_block_with_cold_children): New function. (dbxout_block): Return true if any LBRAC/RBRAC have been emitted. Use dbx_block_with_cold_children at depth == 0 in second partition. Add PARENT_BLOCKNUM argument, pass it optionally adjusted to children. Output LBRAC/RBRAC around recursive call only if the block is in the current partition, if not and anything was output, emit empty range LBRAC/RBRAC. * final.c (final_scan_insn): Compute cold_function_name before calling switch_text_section debug hook. Call that hook even if dwarf2out_do_frame if not emitting dwarf debug info. * g++.dg/debug/debug9.C: Remove -fno-reorder-blocks-and-partition workaround. From-SVN: r255161
2017-11-27re PR target/83100 (powerpc: internal compiler error: in ↵Jakub Jelinek7-3/+52
get_variable_section, at varasm.c:1150 with -fdata-sections) PR target/83100 * varasm.c (bss_initializer_p): Return true for DECL_COMMON TREE_READONLY decls. * gcc.dg/pr83100-1.c: New test. * gcc.dg/pr83100-2.c: New test. * gcc.dg/pr83100-3.c: New test. * gcc.dg/pr83100-4.c: New test. From-SVN: r255160
2017-11-27Fix PR82488 - signed integer overflow in expr.cMarkus Trippelsdorf2-2/+10
bootstrap-ubsan shows: gcc/expr.c:4103:17: runtime error: signed integer overflow: 0 - -9223372036854775808 cannot be represented in type 'long int' Fix by handling the saw_unknown case earlier. PR rtl-optimization/82488 * expr.c (fixup_args_size_notes): Avoid signed integer overflow. diff --git a/gcc/expr.c b/gcc/expr.c index ee07de5aaa44..e9d8555c9452 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -4100,10 +4100,13 @@ fixup_args_size_notes (rtx_insn *prev, rtx_insn *last, int end_args_size) if (STACK_GROWS_DOWNWARD) this_delta = -(unsigned HOST_WIDE_INT) this_delta; - args_size -= this_delta; + if (saw_unknown) + args_size = INT_MIN; + else + args_size -= this_delta; } - return saw_unknown ? INT_MIN : args_size; + return args_size; } #ifdef PUSH_ROUNDING -- Markus From-SVN: r255159
2017-11-27Daily bump.GCC Administrator1-1/+1
From-SVN: r255158
2017-11-26i386.c (processor_target_table): Add skylake_cost for skylake-avx512.Uros Bizjak14-25/+205
* config/i386/i386.c (processor_target_table): Add skylake_cost for skylake-avx512. * config/i386/x86-tune-costs.h (skylake_memcpy, skylake_memset, skylake_cost): New. * config/i386/driver-i386.c (host_detect_local_cpu): Detect skylake-avx512. * config.gcc: Add -march=cannonlake. * config/i386/driver-i386.c (host_detect_local_cpu): Detect cannonlake. * config/i386/i386-c.c (ix86_target_macros_internal): Handle cannonlake. * config/i386/i386.c (processor_costs): Add m_CANNONLAKE. (PTA_CANNONLAKE): New. (processor_target_table): Add cannonlake. (ix86_option_override_internal): Ditto. (fold_builtin_cpu): Ditto. (get_builtin_code_for_version): Handle cannonlake. (M_INTEL_COREI7_CANNONLAKE): New. * config/i386/i386.h (TARGET_CANNONLAKE, PROCESSOR_CANNONLAKE): New. * doc/invoke.texi: Add -march=cannonlake. gcc/testsuite/ * gcc.target/i386/funcspec-56.inc: Handle new march. * g++.dg/ext/mv16.C: Ditto. libgcc/ * config/i386/cpuinfo.c (get_intel_cpu): Handle cannonlake. * config/i386/cpuinfo.h (processor_subtypes): Add INTEL_COREI7_CANNONLAKE. From-SVN: r255155
2017-11-26Plugin support on Windows/MinGWBoris Kolpackov13-20/+253
config/ChangeLog: 2017-11-14 Boris Kolpackov <boris@codesynthesis.com> * gcc-plugin.m4: Add support for MinGW. gcc/ChangeLog: 2017-11-14 Boris Kolpackov <boris@codesynthesis.com> * plugin.c (add_new_plugin): Use platform-specific library extensions. (try_init_one_plugin): Alternative implementation for MinGW. * Makefile.in (plugin_implib): New. (gengtype-lex.c): Fix broken AIX workaround. * configure: Regenerate. * doc/plugins.texi: Document support for MinGW. gcc/c/ChangeLog: 2017-11-14 Boris Kolpackov <boris@codesynthesis.com> * Make-lang.in (c.install-plugin): Install backend import library. gcc/cp/ChangeLog: 2017-11-14 Boris Kolpackov <boris@codesynthesis.com> * Make-lang.in (c++.install-plugin): Install backend import library. libcc1/ChangeLog: 2017-11-14 Boris Kolpackov <boris@codesynthesis.com> * configure: Regenerate. From-SVN: r255154
2017-11-26Daily bump.GCC Administrator1-1/+1
From-SVN: r255153
2017-11-25re PR rtl-optimization/81553 (ICE in immed_wide_int_const, at emit-rtl.c:607)Jakub Jelinek4-3/+28
PR rtl-optimization/81553 * combine.c (simplify_if_then_else): In (if_then_else COND (OP Z C1) Z) to (OP Z (mult COND (C1 * STORE_FLAG_VALUE))) optimization, if OP is a shift where C1 has different mode than the whole shift, use C1's mode for MULT rather than the shift's mode. * gcc.c-torture/compile/pr81553.c: New test. From-SVN: r255150
2017-11-25structret1.C (FrameworkObject::action): Return a value.Andreas Schwab2-0/+6
* g++.dg/abi/structret1.C (FrameworkObject::action): Return a value. From-SVN: r255149
2017-11-25re PR target/82848 (ICE in expand_expr_real_2, at expr.c:8715)Jakub Jelinek4-0/+30
PR target/82848 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Don't fold builtins not enabled in the currently selected ISA. * gcc.target/powerpc/pr82848.c: New test. From-SVN: r255148
2017-11-25Daily bump.GCC Administrator1-1/+1
From-SVN: r255147
2017-11-24re PR fortran/81304 (Bogus warning with -Wsurprising and -fopenmp: Type ↵Jakub Jelinek4-1/+30
specified for intrinsic function 'min' / 'max') PR fortran/81304 * trans-openmp.c (gfc_trans_omp_array_reduction_or_udr): Set attr.implicit_type in intrinsic_sym to avoid undesirable warning. * testsuite/libgomp.fortran/pr81304.f90: New test. From-SVN: r255144
2017-11-24Factor out division by squaresJackson Woodruff6-30/+289
This patch implements the some of the division optimizations discussed in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71026. The division reciprocal optimization now handles divisions by squares: x / (y * y) -> x * (1 / y) * (1 / y) This requires at least one more division by y before it triggers - the 3 divisions of (1/ y) are then CSEd into a single division. Overall this changes 1 division into 1 multiply, which is generally much faster. 2017-11-24 Jackson Woodruff <jackson.woodruff@arm.com> gcc/ PR tree-optimization/71026 * tree-ssa-math-opts (is_division_by_square, is_square_of): New. (insert_reciprocals): Change to insert reciprocals before a division by a square and to insert the square of a reciprocal. (execute_cse_reciprocals_1): Change to consider division by a square. (register_division_in): Add importance parameter. testsuite/ PR tree-optimization/71026 * gfortran.dg/extract_recip_1.f: New test. * gcc.dg/extract_recip_3.c: New test. * gcc.dg/extract_recip_4.c: New test. From-SVN: r255141
2017-11-24re PR tree-optimization/82402 (error: SSA_NAME_OCCURS_IN_ABNORMAL_PHI should ↵Richard Biener4-0/+33
be set) 2017-11-24 Richard Biener <rguenther@suse.de> PR tree-optimization/82402 * tree-vect-loop-manip.c (create_lcssa_for_virtual_phi): Properly set SSA_NAME_OCCURS_IN_ABNORMAL_PHI. * gcc.dg/torture/pr82402.c: New testcase. From-SVN: r255140
2017-11-24Simplify 0 - ptr.Marc Glisse2-0/+8
2017-11-24 Marc Glisse <marc.glisse@inria.fr> * match.pd (0-ptr): New transformation. From-SVN: r255139
2017-11-24re PR bootstrap/83015 (bootstrap comparison failure on ia64)Jan Hubicka2-0/+8
PR bootstrap/83015 * ipa-inline.c (inline_small_functions): Set current badnes correctly when skipping checking. From-SVN: r255138
2017-11-24Whitespace fix for libgfortran/ChangeLogJanne Blomqvist1-0/+1
From-SVN: r255137
2017-11-24re PR tree-optimization/83128 (Unable to optimize {m,c}alloc when strings ↵Richard Biener4-3/+30
builtin are used) 2017-11-24 Richard Biener <rguenther@suse.de> PR tree-optimization/83128 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle STRING_CSTs. (vn_reference_lookup_3): Likewise. * gcc.dg/tree-ssa/ssa-fre-62.c: New testcase. From-SVN: r255136
2017-11-24PR 36313 Replace int with gfc_charlen_type, take 3Janne Blomqvist15-14/+31
Still some prototypes that didn't match the implementation. 2017-11-24 Janne Blomqvist <jb@gcc.gnu.org> PR fortran/36313 * m4/maxloc2s.m4: Replace int with gfc_charlen_type, take 3. * m4/minloc2s.m4: Likewise. * generated/maxloc2_16_s1.c: Regenerated. * generated/maxloc2_16_s4.c: Regenerated. * generated/maxloc2_4_s1.c: Regenerated. * generated/maxloc2_4_s4.c: Regenerated. * generated/maxloc2_8_s1.c: Regenerated. * generated/maxloc2_8_s4.c: Regenerated. * generated/minloc2_16_s1.c: Regenerated. * generated/minloc2_16_s4.c: Regenerated. * generated/minloc2_4_s1.c: Regenerated. * generated/minloc2_4_s4.c: Regenerated. * generated/minloc2_8_s1.c: Regenerated. * generated/minloc2_8_s4.c: Regenerated. From-SVN: r255135
2017-11-24re PR sanitizer/83014 (ICE in pretty-print with -fsanitize=bounds)Jakub Jelinek4-3/+23
PR sanitizer/83014 * ubsan.c (ubsan_type_descriptor): Use pp_unsigned_wide_integer instead of pp_printf with HOST_WIDE_INT_PRINT_DEC. Avoid calling tree_to_uhwi twice. * gcc.dg/ubsan/pr83014.c: New test. From-SVN: r255134
2017-11-24tree-object-size.c (pass_through_call): Use gimple_call_return_flags ↵Jakub Jelinek4-27/+36
ERF_RETURN*ARG* for builtins other than... * tree-object-size.c (pass_through_call): Use gimple_call_return_flags ERF_RETURN*ARG* for builtins other than BUILT_IN_ASSUME_ALIGNED, check for the latter with gimple_call_builtin_p. Do not handle BUILT_IN_STPNCPY_CHK which is not a pass through call. * gcc.dg/builtin-object-size-18.c: New test. From-SVN: r255133
2017-11-24Add missing gcc/config.gcc hunks from r255121.Kirill Yukhin1-2/+4
From-SVN: r255132
2017-11-24Add missing hunks from r255121.Kirill Yukhin2-1/+59
From-SVN: r255131
2017-11-24Daily bump.GCC Administrator1-1/+1
From-SVN: r255130
2017-11-24Add [[nodiscard]] attribute to std::launderJonathan Wakely3-2/+34
* libsupc++/new (launder): Add nodiscard attribute. * testsuite/18_support/launder/nodiscard.cc: New test. From-SVN: r255127
2017-11-24[ARM] Fix Dot Product NEON intrinsicsChristophe Lyon2-1/+6
2017-11-24 Christophe Lyon <christophe.lyon@linaro.org> * config/arm/arm_neon.h: Fix pragma GCC push_options before vdot_u32. From-SVN: r255126
2017-11-23re PR ada/83091 (ICE with -g in arm-eabi compilation)Eric Botcazou2-1/+11
PR ada/83091 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not build a variant type for the implementation type of a packed array. From-SVN: r255125
2017-11-23Add [[nodiscard]] attribute to C++17 componentsJonathan Wakely8-6/+114
* include/bits/fs_path.h (path::empty): Add nodiscard attribute. * include/bits/range_access.h (empty): Likewise. * include/std/string_view (basic_string_view::empty): Likewise. * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc: New test. * testsuite/24_iterators/range_access_cpp17_neg.cc: New test. * testsuite/27_io/filesystem/path/query/empty_neg.cc: New test. From-SVN: r255124
2017-11-23PR libstdc++/83134 Ensure std::__not_ converts B::value to boolJonathan Wakely6-12/+52
PR libstdc++/83134 * include/std/type_traits (__not_): Explicitly convert to bool. * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error. * testsuite/20_util/logical_traits/83134.cc: New test. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust dg-error. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Likewise. From-SVN: r255122
2017-11-23Enable VBMI2 support [3/7]Julia Koval14-0/+546
gcc/ config/i386/avx512vbmi2intrin.h (_mm512_mask_expand_epi8, _mm512_maskz_expand_epi8, _mm512_mask_expandloadu_epi8, _mm512_maskz_expandloadu_epi8, _mm512_mask_expand_epi16, _mm512_maskz_expand_epi16, _mm512_mask_expandloadu_epi16, _mm512_maskz_expandloadu_epi16): New intrinsics. config/i386/avx512vbmi2vlintrin.h (_mm_mask_expand_epi8, _mm_maskz_expand_epi8, _mm_mask_expandloadu_epi8, _mm_maskz_expandloadu_epi8, _mm_mask_expand_epi16, _mm_maskz_expand_epi16, _mm_mask_expandloadu_epi16, _mm_maskz_expandloadu_epi16, _mm256_mask_expand_epi16, _mm256_maskz_expand_epi16, _mm256_mask_expandloadu_epi16, _mm256_maskz_expandloadu_epi16, _mm256_mask_expand_epi8, _mm256_maskz_expand_epi8, _mm256_mask_expandloadu_epi8, _mm256_maskz_expandloadu_epi8): New intrinsics. config/i386/i386-builtin-types.def (V64QI_FTYPE_PCV64QI_V64QI_UDI, V32HI_FTYPE_PCV32HI_V32HI_USI, V32QI_FTYPE_PCV32QI_V32QI_USI, V16HI_FTYPE_PCV16HI_V16HI_UHI, V16QI_FTYPE_PCV16QI_V16QI_UHI, V8HI_FTYPE_PCV8HI_V8HI_UQI): New types. config/i386/i386.c (ix86_expand_special_args_builtin): Use new types. config/i386/sse.md (VI248_VLBW): New iterator. (expand<mode>_mask, expand<mode>_maskz): New patterns. gcc/testsuite/ gcc.target/i386/avx512f-vpexpandb-1.c: New test. gcc.target/i386/avx512f-vpexpandb-2.c: Ditto. gcc.target/i386/avx512f-vpexpandw-1.c: Ditto. gcc.target/i386/avx512f-vpexpandw-2.c: Ditto. gcc.target/i386/avx512vl-vpexpandb-1.c: Ditto. gcc.target/i386/avx512vl-vpexpandb-2.c: Ditto. gcc.target/i386/avx512vl-vpexpandw-1.c: Ditto. gcc.target/i386/avx512vl-vpexpandw-2.c: Ditto. From-SVN: r255121
2017-11-23Enable VBMI2 support [2/7]Julia Koval17-1/+645
gcc/ config.gcc (avx512vbmi2intrin.h, avx512vbmi2vlintrin): New headers. config/i386/avx512vbmi2intrin.h (_mm512_mask_compress_epi8, _mm512_maskz_compress_epi8, _mm512_mask_compressstoreu_epi8, _mm512_mask_compress_epi16, _mm512_maskz_compress_epi16, _mm512_mask_compressstoreu_epi16): New. config/i386/avx512vbmi2vlintrin.h (_mm_mask_compress_epi8, _mm_maskz_compress_epi8, _mm256_mask_compressstoreu_epi16, _mm_mask_compress_epi16, _mm_maskz_compress_epi16, _mm256_mask_compress_epi16, _mm256_maskz_compress_epi16, _mm_mask_compressstoreu_epi8, _mm_mask_compressstoreu_epi16, _mm256_mask_compress_epi8, _mm256_maskz_compress_epi8, _mm256_mask_compressstoreu_epi8): New. config/i386/i386-builtin-types.def (VOID_FTYPE_PV64QI_V64QI_UDI, VOID_FTYPE_PV32HI_V32HI_USI, VOID_FTYPE_PV32QI_V32QI_USI, VOID_FTYPE_PV16QI_V16QI_UHI, VOID_FTYPE_PV16HI_V16HI_UHI, VOID_FTYPE_PV8HI_V8HI_UQI): New types. config/i386/i386-builtin.def (__builtin_ia32_compressqi512_mask, __builtin_ia32_compresshi512_mask, __builtin_ia32_compressqi256_mask, __builtin_ia32_compressqi128_mask, __builtin_ia32_compresshi256_mask, __builtin_ia32_compresshi128_mask, __builtin_ia32_compressstoreuqi512_mask, __builtin_ia32_compressstoreuhi512_mask, __builtin_ia32_compressstoreuqi256_mask, __builtin_ia32_compressstoreuqi128_mask, __builtin_ia32_compressstoreuhi256_mask, __builtin_ia32_compressstoreuhi128_mask): New builtins. config/i386/i386.c (ix86_init_mmx_sse_builtins): Create special args array for flags2. (ix86_expand_special_args_builtin): Handle new types. (s4fma_expand): Handle new builtin array. config/i386/immintrin.h: Include new headers. config/i386/sse.md (VI12_AVX512VLBW): New iterator. (compress<mode>_mask, compressstore<mode>_mask): New patterns. gcc/testsuite/ gcc.target/i386/avx512-check.h: Handle AVX512VBMI2 bit. gcc.target/i386/avx512f-vpcompressb-1.c: New test. gcc.target/i386/avx512f-vpcompressb-2.c: Ditto. gcc.target/i386/avx512f-vpcompressw-1.c: Ditto. gcc.target/i386/avx512f-vpcompressw-2.c: Ditto. gcc.target/i386/avx512vl-vpcompressb-1.c: Ditto. gcc.target/i386/avx512vl-vpcompressb-2.c: Ditto. gcc.target/i386/avx512vl-vpcompressw-1.c: Ditto. gcc.target/i386/avx512vl-vpcompressw-2.c: Ditto. gcc.target/i386/i386.exp (check_effective_target_avx512vbmi2): New. From-SVN: r255119