Commit Graph

157884 Commits

Author SHA1 Message Date
Julia Koval
d2eaaa8910 * MAINTAINERS (write after approval): Add myself.
From-SVN: r255189
2017-11-28 09:14:43 +01:00
Segher Boessenkool
b8adcbd923 rs6000: Improve comparison rtx_cost (PR81288)
The current rs6000 rtx_cost for comparisons against 0 is very high if
TARGET_ISEL && !TARGET_MFCRF, much higher than for reg-reg comparisons,
much higher than a load of 0 and such a reg-reg-comparison.  This leads
to infinite recursion in CSE (see PR81288).

This patch removes the too-high cost, also simplifying this code.


	PR 81288/target
	* config/rs6000/rs6000.c (rs6000_rtx_costs): Do not handle
	TARGET_ISEL && !TARGET_MFCRF differently.  Simplify code.

From-SVN: r255188
2017-11-28 02:28:57 +01:00
Segher Boessenkool
fd8bf76c90 rs6000: Improve scc isel
If we have a negative condition we can use a literal 0 in the isel,
instead of having to load it into a register.  If the condition is from
a comparison with an immediate we can change e.g. LT to LE and adjust
the immediate, saving a li instruction.


	* config/rs6000/rs6000.md (<code><GPR:mode><GPR2:mode>2_isel): Change
	LT/GT/LTU/GTU to LE/GE/LEU/GEU where possible.

From-SVN: r255186
2017-11-28 01:17:16 +01:00
GCC Administrator
2ac1a8d832 Daily bump.
From-SVN: r255185
2017-11-28 00:16:20 +00:00
Martin Sebor
9ca1eaacd3 PR c++/83058 - ICE on C++ code with negative array index: in warn_placement_new_too_small
gcc/cp/ChangeLog:

	PR c++/83058
	* init.c (warn_placement_new_too_small): Use offset_int instead of
	HOST_WIDE_INT.

gcc/testsuite/ChangeLog:

	PR c++/83058
	* g++.dg/warn/Wplacement-new-size-5.C: New test.

From-SVN: r255182
2017-11-27 17:02:17 -07:00
Jakub Jelinek
de3d4fd0f5 re PR c++/81888 (Structured bindings stopped working)
PR c++/81888
	* parser.c (cp_parser_decomposition_declaration): Reject just
	BRACE_ENCLOSED_INITIALIZER_P initializers with nelts != 1 rather
	than all such CONSTRUCTORs, and only if is_direct_init is true.

	* g++.dg/cpp1z/decomp30.C: Add a test for structured binding with
	= {} and = { a, a } initializers.
	* g++.dg/cpp1z/decomp31.C: New test.

From-SVN: r255180
2017-11-27 22:54:25 +01:00
Jason Merrill
528c7559a8 pt.c (primary_template_specialization_p): Rename from
* pt.c (primary_template_specialization_p): Rename from

	primary_template_instantiation_p.  Don't check
	DECL_TEMPLATE_INSTANTIATION.
	* call.c, cp-tree.h, decl2.c: Adjust.

From-SVN: r255179
2017-11-27 16:31:00 -05:00
Michael Meissner
32c95bcae3 [gcc]
2017-11-27  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR middle_end/82333
	* varasm.c (compare_constant): Take the mode of the constants into
	account when comparing floating point constants.

[gcc/testsuite]
2017-11-27  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR middle_end/82333
	* gcc.target/powerpc/pr82333.c: New test.

From-SVN: r255177
2017-11-27 19:45:56 +00:00
Stephan Bergmann
0f42ffd7f7 Add missing noexcept in string_view::find_first_of declaration
2017-11-27  Stephan Bergmann  <sbergman@redhat.com>

	* include/std/string_view (basic_string_view::find_first_of): Add
	missing noexcept.

From-SVN: r255176
2017-11-27 19:43:40 +00:00
Gerald Pfeifer
4c71819dda hash-set.h (DEFINE_DEBUG_HASH_SET): Remove static qualifier from explicit instantiation of debug_helper.
* hash-set.h (DEFINE_DEBUG_HASH_SET): Remove static qualifier
	from explicit instantiation of debug_helper.
	* vec.h (DEFINE_DEBUG_VEC): Ditto.

From-SVN: r255175
2017-11-27 17:29:06 +00:00
Stephan Bergmann
68e601d879 Fix std::unordered_map deduction guide
2017-11-27  Stephan Bergmann  <sbergman@redhat.com>

	* include/bits/unordered_map.h (unordered_map): Fix deduction guide.
	* include/debug/unordered_map (unordered_map): Likewise.

From-SVN: r255174
2017-11-27 16:43:39 +00:00
Richard Biener
42f7424573 gimple-fold.c (gimple_fold_builtin_memory_op): Remove dead code, refactor a bit.
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-27 14:35:13 +00:00
Richard Biener
53d2b7cb86 tree.c (wide_int_to_tree): Free discarded INTEGER_CST.
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-27 14:30:36 +00:00
Tamar Christina
d7dccfa38d extend.texi: Add -A suffix (ARMv8*-A, ARMv7-A).
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-27 14:21:18 +00:00
Jakub Jelinek
cb358080c9 re PR c++/81675 (attribute(noreturn) of destructor in :? not honored)
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-27 14:13:22 +01:00
Markus Trippelsdorf
04f9150378 Fix UB in hash-map.h
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-27 12:53:16 +00:00
Eric Botcazou
ff27462edc cfgloop.h (struct loop): Document usage of USHRT_MAX for unroll.
* 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-27 11:56:36 +00:00
Igor Tsimbalist
39335d1486 Fix code generation for buildtin_longjmp with CET.
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 12:54:17 +01:00
Martin Jambor
be025a2d99 [PR 81248] Fix ipa-sra size check
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-27 11:33:06 +01:00
Jakub Jelinek
8cb715989f null-8.C (bar): New function.
* g++.dg/ubsan/null-8.C (bar): New function.
	(foo): Use bar instead of __builtin_printf.

From-SVN: r255162
2017-11-27 11:29:03 +01:00
Jakub Jelinek
b8cb3096f7 re PR debug/81307 (g++.dg/debug/debug9.C -gstabs FAILs)
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-27 09:48:56 +01:00
Jakub Jelinek
9adeb64ab9 re PR target/83100 (powerpc: internal compiler error: in 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-27 09:34:50 +01:00
Markus Trippelsdorf
99282f81a6 Fix PR82488 - signed integer overflow in expr.c
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-27 05:20:43 +00:00
GCC Administrator
62e8530cd5 Daily bump.
From-SVN: r255158
2017-11-27 00:16:12 +00:00
Uros Bizjak
c234d8319b i386.c (processor_target_table): Add skylake_cost for skylake-avx512.
* 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-26 17:11:29 +01:00
Boris Kolpackov
8c7dbea9f1 Plugin support on Windows/MinGW
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-26 13:00:48 +00:00
GCC Administrator
44dfb82280 Daily bump.
From-SVN: r255153
2017-11-26 00:16:15 +00:00
Jakub Jelinek
e95be6330d re PR rtl-optimization/81553 (ICE in immed_wide_int_const, at emit-rtl.c:607)
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-25 20:35:47 +01:00
Andreas Schwab
5a2707633b structret1.C (FrameworkObject::action): Return a value.
* g++.dg/abi/structret1.C (FrameworkObject::action): Return a
value.

From-SVN: r255149
2017-11-25 18:57:01 +00:00
Jakub Jelinek
b7f08b83e4 re PR target/82848 (ICE in expand_expr_real_2, at expr.c:8715)
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-25 11:19:16 +01:00
GCC Administrator
430ddc2279 Daily bump.
From-SVN: r255147
2017-11-25 00:16:16 +00:00
Jakub Jelinek
3b3e6283a4 re PR fortran/81304 (Bogus warning with -Wsurprising and -fopenmp: Type 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-24 22:40:21 +01:00
Jackson Woodruff
19cf3a3685 Factor out division by squares
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-24 16:03:13 +00:00
Richard Biener
15b6695ac5 re PR tree-optimization/82402 (error: SSA_NAME_OCCURS_IN_ABNORMAL_PHI should 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-24 12:34:23 +00:00
Marc Glisse
406520e26f Simplify 0 - ptr.
2017-11-24  Marc Glisse  <marc.glisse@inria.fr>

	* match.pd (0-ptr): New transformation.

From-SVN: r255139
2017-11-24 12:09:14 +00:00
Jan Hubicka
f4118c878d re PR bootstrap/83015 (bootstrap comparison failure on ia64)
PR bootstrap/83015
	* ipa-inline.c (inline_small_functions): Set current badnes correctly
	when skipping checking.

From-SVN: r255138
2017-11-24 11:24:55 +00:00
Janne Blomqvist
4dae9c641b Whitespace fix for libgfortran/ChangeLog
From-SVN: r255137
2017-11-24 11:57:52 +02:00
Richard Biener
6a248fce56 re PR tree-optimization/83128 (Unable to optimize {m,c}alloc when strings 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-24 09:40:40 +00:00
Janne Blomqvist
97e1c8786b PR 36313 Replace int with gfc_charlen_type, take 3
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-24 10:51:15 +02:00
Jakub Jelinek
96281645bd re PR sanitizer/83014 (ICE in pretty-print with -fsanitize=bounds)
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-24 09:35:10 +01:00
Jakub Jelinek
51feb980c9 tree-object-size.c (pass_through_call): Use gimple_call_return_flags 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-24 09:34:13 +01:00
Kirill Yukhin
489154e71b Add missing gcc/config.gcc hunks from r255121.
From-SVN: r255132
2017-11-24 07:39:57 +00:00
Kirill Yukhin
566bd102f7 Add missing hunks from r255121.
From-SVN: r255131
2017-11-24 06:49:04 +00:00
GCC Administrator
fcb01caa4f Daily bump.
From-SVN: r255130
2017-11-24 00:16:21 +00:00
Jonathan Wakely
a8541d9021 Add [[nodiscard]] attribute to std::launder
* libsupc++/new (launder): Add nodiscard attribute.
	* testsuite/18_support/launder/nodiscard.cc: New test.

From-SVN: r255127
2017-11-24 00:00:46 +00:00
Christophe Lyon
117e6b50b6 [ARM] Fix Dot Product NEON intrinsics
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-24 00:24:51 +01:00
Eric Botcazou
773076a512 re PR ada/83091 (ICE with -g in arm-eabi compilation)
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-23 22:55:05 +00:00
Jonathan Wakely
d69f1ec7d1 Add [[nodiscard]] attribute to C++17 components
* 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-23 22:11:21 +00:00
Jonathan Wakely
4b9840f230 PR libstdc++/83134 Ensure std::__not_ converts B::value to bool
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-23 21:35:27 +00:00
Julia Koval
de8603793a Enable VBMI2 support [3/7]
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-23 21:03:55 +00:00