aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2018-02-13* fr.po: Update.Joseph Myers2-2386/+1528
From-SVN: r257639
2018-02-13re PR c++/84333 (ICE with ternary operator in template function)Paolo Carlini5-1/+27
/cp 2018-02-13 Paolo Carlini <paolo.carlini@oracle.com> PR c++/84333 * call.c (build_conditional_expr_1): Use cp_save_expr instead of save_expr for the G++ extension. /testsuite 2018-02-13 Paolo Carlini <paolo.carlini@oracle.com> PR c++/84333 * g++.dg/template/sizeof16.C: New. * g++.dg/template/sizeof17.C: Likewise. From-SVN: r257638
2018-02-13compiler: don't export function descriptors for unexported namesIan Lance Taylor2-1/+16
They aren't needed, and could potentially cause unlikely symbol name collisions. Also, the runtime package's reference to main could cause the runtime package to define main.main..f, which could also be defined in the main package if it does something like fmt.Print(main). That will normally work but will fail with a multiple symbol definition error when using -static-libgo. Reviewed-on: https://go-review.googlesource.com/93656 From-SVN: r257637
2018-02-13re PR fortran/84313 ([F08] reject procedure pointers in COMMON blocks)Janus Weil5-4/+20
2018-02-13 Janus Weil <janus@gcc.gnu.org> PR fortran/84313 * symbol.c (check_conflict): Reject procedure pointers in common blocks. 2018-02-13 Janus Weil <janus@gcc.gnu.org> PR fortran/84313 * gfortran.dg/proc_ptr_common_1.f90: Fix invalid test case, add necessary compiler options. * gfortran.dg/proc_ptr_common_2.f90: Add missing error message. From-SVN: r257636
2018-02-13re PR c/82210 (Having _Alignas in a struct with VLAs causes writing to one ↵Jakub Jelinek4-0/+58
array to overwrite another) PR c/82210 * stor-layout.c (place_field): For variable length fields, adjust offset_align afterwards not just based on the field's alignment, but also on the size. * gcc.c-torture/execute/pr82210.c: New test. From-SVN: r257635
2018-02-13re PR middle-end/84309 (Wrong-code with -ffast-math)Jakub Jelinek4-1/+23
PR middle-end/84309 * match.pd (pow(C,x) -> exp(log(C)*x)): Use exp2s and log2s instead of exps and logs in the use_exp2 case. * gcc.dg/pr84309-2.c: New test. From-SVN: r257634
2018-02-13rl78.c (rl78_attribute_table): Fix terminator and entry for "vector".Jeff Law2-2/+5
2018-02-13 Jeff Law <law@redhat.com> * config/rl/rl78.c (rl78_attribute_table): Fix terminator and entry for "vector". From-SVN: r257633
2018-02-13rl78.c (rl78_handle_func_attribute): Mark ARGS as unused.Jeff Law2-1/+6
* config/rl78/rl78.c (rl78_handle_func_attribute): Mark ARGS as unused. From-SVN: r257632
2018-02-13common.opt (gas-loc-support, [...]): New.Alexandre Oliva13-93/+364
* common.opt (gas-loc-support, gas-locview-support): New. (ginline-points, ginternal-reset-location-views): New. * doc/invoke.texi: Document them. Use @itemx where intended. (gvariable-location-views): Adjust. * target.def (reset_location_view): New. * doc/tm.texi.in (DWARF2_ASM_VIEW_DEBUG_INFO): New. (TARGET_RESET_LOCATION_VIEW): New. * doc/tm.texi: Rebuilt. * dwarf2out.c (dwarf2out_default_as_loc_support): New. (dwarf2out_default_as_locview_support): New. (output_asm_line_debug_info): Use option variables. (dwarf2out_maybe_output_loclist_view_pair): Likewise. (output_loc_list): Likewise. (add_high_low_attributes): Check option variables. Don't output entry view attribute in strict mode. (gen_inlined_subroutine_die): Check option variables. (dwarf2out_inline_entry): Likewise. (init_sections_and_labels): Likewise. (dwarf2out_early_finish): Likewise. (maybe_reset_location_view): New, from... (dwarf2out_var_location): ... here. Call it. * debug.h (dwarf2out_default_as_loc_support): Declare. (dwarf2out_default_as_locview_support): Declare. * hooks.c (hook_int_rtx_insn_0): New. * hooks.h (hook_int_rtx_insn_0): Declare. * toplev.c (process_options): Take -gas-loc-support and -gas-locview-support from dwarf2out. Enable -gvariable-location-views by default only with locview assembler support. Enable -ginternal-reset-location-views by default only if the target defines the corresponding hook. Enable -ginline-points by default if location views are enabled; force it disabled if statement frontiers are disabled. * tree-inline.c (expand_call_inline): Check option variables. * tree-ssa-live.c (remove_unused_scope_block_p): Likewise. From-SVN: r257631
2018-02-13PR c++/84080 - ICE with return type deduction and specialization.Jason Merrill3-0/+14
* pt.c (determine_specialization): Check uses_template_parms. From-SVN: r257630
2018-02-13re PR tree-optimization/84321 (ice in intersect_range_with_nonzero_bits, at ↵Richard Sandiford4-20/+72
tree-vrp.c:213) 2018-02-12 Richard Sandiford <richard.sandiford@linaro.org> gcc/ PR tree-optimization/84321 * tree-vrp.c (intersect_range_with_nonzero_bits): Fix VR_ANTI_RANGE handling. Also check whether the anti-range contains any values that satisfy the mask; switch to a VR_RANGE if not. gcc/testsuite/ PR tree-optimization/84321 * gcc.dg/pr84321.c: New test. From-SVN: r257629
2018-02-13re PR target/84359 (gcc.target/i386/pr57193.c fail)Vladimir Makarov2-1/+6
2018-02-13 Vladimir Makarov <vmakarov@redhat.com> PR target/84359 * gcc.target/i386/57193.c: Add -march=x86-64. From-SVN: r257628
2018-02-13Fix more variadic capture issues.Jason Merrill5-17/+90
* pt.c (find_parameter_packs_r): Also look at explicit captures. (check_for_bare_parameter_packs): Check current_class_type for lambda context. (extract_locals_r): Handle seeing a full instantiation of a pack. (tsubst_pack_expansion): Likewise. Force lambda capture. * parser.c (cp_parser_lambda_introducer): Don't check_for_bare_parameter_packs. From-SVN: r257627
2018-02-13PR c++/84338 - wrong variadic sizeof.Jason Merrill4-33/+66
* pt.c (argument_pack_select_arg): Like the macro, but look through a pack expansion. (tsubst, tsubst_copy, dependent_template_arg_p): Use it. (extract_fnparm_pack): Do make_pack_expansion. (extract_locals_r): Do strip a pack expansion. * cp-tree.h (ARGUMENT_PACK_SELECT_ARG): Remove. From-SVN: r257626
2018-02-13re PR sanitizer/84340 (g++.dg/asan/use-after-scope-types-1.C (and others) ↵Paolo Bonzini4-23/+12
fails after r257585) gcc: 2018-02-13 Paolo Bonzini <bonzini@gnu.org> PR sanitizer/84340 * internal-fn.def (ASAN_CHECK, ASAN_MARK): Revert changes to fnspec. gcc/testsuite: 2018-02-13 Paolo Bonzini <bonzini@gnu.org> PR sanitizer/84307 * gcc.dg/asan/pr84307.c: Remove test. From-SVN: r257625
2018-02-13WebAssembly: Disable subdirectory configuration for unsupported LDMaciej W. Rozycki3-0/+11
Remove an LD subdirectory configuration error: *** ld does not support target wasm32-unknown-none *** see ld/configure.tgt for supported targets make[1]: *** [configure-ld] Error 1 which prevents binutils for the WebAssembly target from being built unless an explicit `--disable-ld' configuration option has been given. Users must not have to disable features selected by default to get a working configuration. / * configure.ac <wasm32-*-*> (noconfigdirs): Add `ld'. * configure: Regenerate. From-SVN: r257624
2018-02-13[PR 83990] Fix location handling in ipa_modify_call_argumentsMartin Jambor2-2/+8
2018-02-13 Martin Jambor <mjambor@suse.cz> PR c++/83990 * ipa-param-manipulation.c (ipa_modify_call_arguments): Use location of call statements, also set location of a load to a temporary. From-SVN: r257623
2018-02-13rl78.c (add_vector_labels): New function.Sebastian Perta5-3/+120
2018-02-13 Sebastian Perta <sebastian.perta@renesas.com> * config/rl78/rl78.c (add_vector_labels): New function. * config/rl78/rl78.c (rl78_handle_vector_attribute): New function. * config/rl78/rl78.c (rl78_start_function): Call add_vector_labels. * config/rl78/rl78.c (rl78_handle_func_attribute): Removed the assert which checks that no arguments are passed. * config/rl78/rl78.c (rl78_attribute_table): Add "vector" attribute. * doc/extend.texi: Documentation for the new attribute. 2018-02-13 Sebastian Perta <sebastian.perta@renesas.com> * gcc.target/rl78/test_auto_vector.c: New test. From-SVN: r257622
2018-02-13RISC-V: define _REENTRANT with -pthreadAndreas Schwab2-0/+6
This is expected by the AX_PTHREAD autoconf macro from <http://www.gnu.org/software/autoconf-archive/ax_pthread.html>. * config/riscv/linux.h (CPP_SPEC): Define. From-SVN: r257621
2018-02-13Add a DECL_EXPR for VLA pointer casts (PR 84305)Richard Sandiford4-14/+56
This PR was about a case in which we ended up with a MULT_EXPR that was shared between an ungimplified VLA type and a pointer calculation. The SSA names used in the pointer calculation were later freed, but they were still there in the VLA, and caused an ICE when remapping the types during inlinling. The fix is to add a DECL_EXPR that forces the VLA type sizes to be gimplified too, but the tricky part is deciding where. As the comment in grokdeclarator says, we can't just add it to the statement list, since the size might only be conditionally evaluated. It might also end up being evaluated out of sequence. The patch gets around that by putting the DECL_EXPR in a BIND_EXPR and adding the BIND_EXPR to the list of things that need to be evaluated for the declarator. 2018-02-13 Richard Sandiford <richard.sandiford@linaro.org> gcc/c/ PR c/84305 * c-decl.c (grokdeclarator): Create an anonymous TYPE_DECL in PARM and TYPENAME contexts too, but attach it to a BIND_EXPR and include the BIND_EXPR in the list of things that need to be pre-evaluated. gcc/testsuite/ PR c/84305 * gcc.c-torture/compile/pr84305.c: New test. From-SVN: r257620
2018-02-13re PR target/84335 (ICE on invalid code in copy_to_mode_reg, at explow.c:612)Jakub Jelinek5-11/+41
PR target/84335 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Pass OPTION_MASK_ISA_AES | OPTION_MASK_ISA_SSE2 instead of OPTION_MASK_ISA_AES as first argument to def_builtin_const for AES builtins. Pass OPTION_MASK_ISA_PCLMUL | OPTION_MASK_ISA_SSE2 instead of OPTION_MASK_ISA_PCLMUL as first argument to def_builtin_const for __builtin_ia32_pclmulqdq128 builtin. * config/i386/wmmintrin.h: If __SSE2__ is not defined, enable it temporarily for AES and PCLMUL builtins. * gcc.target/i386/pr84335.c: New test. From-SVN: r257619
2018-02-13re PR tree-optimization/84339 (Wrong-code with optimizing strlen)Jakub Jelinek4-2/+46
PR tree-optimization/84339 * gimple-fold.c (get_range_strlen): Set *FLEXP to true when handling ARRAY_REF where first operand is array_at_struct_end_p COMPONENT_REF. Formatting fixes. * gcc.c-torture/execute/pr84339.c: New test. From-SVN: r257618
2018-02-13re PR middle-end/84309 (Wrong-code with -ffast-math)Jakub Jelinek10-29/+204
PR middle-end/84309 * match.pd (pow(C,x) -> exp(log(C)*x)): Optimize instead into exp2(log2(C)*x) if C is a power of 2 and c99 runtime is available. * generic-match-head.c (canonicalize_math_after_vectorization_p): New inline function. * gimple-match-head.c (canonicalize_math_after_vectorization_p): New inline function. * omp-simd-clone.h: New file. * omp-simd-clone.c: Include omp-simd-clone.h. (expand_simd_clones): No longer static. * tree-vect-patterns.c: Include fold-const-call.h, attribs.h, cgraph.h and omp-simd-clone.h. (vect_recog_pow_pattern): Optimize pow(C,x) to exp(log(C)*x). (vect_recog_widen_shift_pattern): Formatting fix. (vect_pattern_recog_1): Don't check optab for calls. * gcc.dg/pr84309.c: New test. * gcc.target/i386/pr84309.c: New test. From-SVN: r257617
2018-02-13re PR target/84336 (ICE in extract_insn, at recog.c:2304)Jakub Jelinek4-1/+28
PR target/84336 * config/i386/sse.md (<avx512>_vpermi2var<mode>3_mask): Force operands[2] into a REG before using gen_lowpart on it. * gcc.target/i386/pr84336.c: New test. From-SVN: r257616
2018-02-13Make module files reproducibleAlastair McKinstry2-1/+9
Using lbasename ensures that the build path does not end up in the module file. Regtested on x86_64-pc-linux-gnu, committed to trunk. Will shortly backport to the 6 and 7 branches as well. 2018-02-13 Alastair McKinstry <alastair.mckinstry@sceal.ie> Janne Blomqvist <jb@gcc.gnu.org> * module.c (dump_module): Use lbasename to ensure that module files are reproducible. Co-Authored-By: Janne Blomqvist <jb@gcc.gnu.org> From-SVN: r257613
2018-02-12re PR target/83760 ([SH] ICE in maybe_record_trace_start building glibc ↵Jeff Law2-0/+16
tst-copy_file_range.c) PR target/83760 * config/sh/sh.c (find_barrier): Consider a sibling call a barrier as well. From-SVN: r257611
2018-02-13Daily bump.GCC Administrator1-1/+1
From-SVN: r257610
2018-02-12re PR c++/84341 (ICE with #pragma omp atomic)Jakub Jelinek4-6/+29
PR c++/84341 * parser.c (cp_parser_binary_expression): Use build_min instead of build2_loc to build the no_toplevel_fold_p toplevel binary expression. * c-c++-common/gomp/pr84341.c: New test. From-SVN: r257607
2018-02-12* sv.po: Update.Joseph Myers2-248/+148
From-SVN: r257606
2018-02-12re PR fortran/68746 (FAIL: gfortran.dg/read_dir.f90 -O0 execution test)Thomas Koenig2-0/+6
2018-02-12 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/68746 * gfortran.dg/read_dir.f90: Re-add dg-do run. From-SVN: r257605
2018-02-12re PR fortran/68746 (FAIL: gfortran.dg/read_dir.f90 -O0 execution test)Thomas Koenig2-2/+7
2018-02-12 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/68746 * gfortran.dg/read_dir.f90: Remove xfails. Also allow iostat of zero for read. From-SVN: r257604
2018-02-12libgfortran.h (GFC_ARRAY_DESCRIPTOR): Remove dimension of descriptor to use ↵Thomas Koenig19-45/+93
vaiable members for dim. 2018-02-12 Thomas Koenig <tkoenig@gcc.gnu.org> * libgfortran.h (GFC_ARRAY_DESCRIPTOR): Remove dimension of descriptor to use vaiable members for dim. Change usage of GFC_ARRAY_DESCRIPTOR accordingly. (GFC_FILL_ARRAY_DESCRIPTOR): New macro. (gfc_full_array_i4): New type. * intrinsics/date_and_time.c (secnds): Use sizeof (gfc_array_i4) + sizeof (descriptor_dimension) for memory allocation. * intrinsics/reshape_generic.c: Use GFC_FULL_ARRAY_DESCRIPTOR. * io/format.c: Use sizeof (gfc_array_i4) + sizeof (descriptor_dimension) for memoy allocation. * io/list_read.c (list_formatted_read_scalar): Use gfc_full_array_i4 for variable. (nml_read_obj): Likewise. * io/write.c (list_formatted_write_scalar): Likewise. (nml_write_obj): Likewise. * m4/reshape.m4: Use GFC_FULL_ARRAY_DESCRIPTOR. * generated/reshape_c10.c: Regenerated. * generated/reshape_c16.c: Regenerated. * generated/reshape_c4.c: Regenerated. * generated/reshape_c8.c: Regenerated. * generated/reshape_i16.c: Regenerated. * generated/reshape_i4.c: Regenerated. * generated/reshape_i8.c: Regenerated. * generated/reshape_r10.c: Regenerated. * generated/reshape_r16.c: Regenerated. * generated/reshape_r4.c: Regenerated. * generated/reshape_r8.c: Regenerated. From-SVN: r257601
2018-02-12compiler: error on func declaration/definitionIan Lance Taylor6-41/+22
Long long long ago Go permitted writing func F() in one file and writing func F() {} in another file. This was removed from the language, and that is now considered to be a multiple definition error. Gccgo never caught up to that, and it has been permitting this invalid code for some time. Stop permitting it, so that we give correct errors. Since we've supported it for a long time, the compiler uses it in a couple of cases: it predeclares the hash/equal methods if it decides to create them while compiling another function, and it predeclares main.main as a mechanism for getting the right warning if a program uses the wrong signature for main. For simplicity, keep those existing uses. This required a few minor changes in libgo which were relying, unnecessarily, on the current behavior. Reviewed-on: https://go-review.googlesource.com/93083 From-SVN: r257600
2018-02-12re PR go/84215 (Random results in go/libgo tests)Ian Lance Taylor4-51/+70
PR go/84215 runtime, sync/atomic: use write barrier for atomic pointer functions This copies atomic_pointer.go from 1.10rc2. It was omitted during the transition of the runtime from C to Go, and I forgot about it. This may help with https://gcc.gnu.org/PR84215. Reviewed-on: https://go-review.googlesource.com/93197 From-SVN: r257599
2018-02-12cse.c (try_back_substitute_reg): Move any REG_ARGS_SIZE note when ↵Jeff Law4-0/+54
successfully back substituting a reg. * cse.c (try_back_substitute_reg): Move any REG_ARGS_SIZE note when successfully back substituting a reg. * gcc.c-torture/compile/reg-args-size.c: New test. From-SVN: r257598
2018-02-12builtins-4-runnable.c (main): Move int128 and uint128 tests to new testfile.Carl Love4-84/+119
gcc/testsuite/ChangeLog: 2018-02-12 Carl Love <cel@us.ibm.com> * gcc.target/powerpc/builtins-4-runnable.c (main): Move int128 and uint128 tests to new testfile. * gcc.target/powerpc/builtins-4-int128-runnable.c: New testfile for int128 and uint128 tests. * gcc.target/powerpc/powerpc.exp: Add builtins-4-int128-runnable.c to list of torture tests. From-SVN: r257591
2018-02-12re PR fortran/84273 ([F03] Reject allocatable passed-object dummy argument ↵Janus Weil5-12/+25
(proc_ptr_47.f90)) 2018-02-12 Janus Weil <janus@gcc.gnu.org> PR fortran/84273 * resolve.c (resolve_component): Fix checks of passed argument in procedure-pointer components. 2018-02-12 Janus Weil <janus@gcc.gnu.org> PR fortran/84273 * gfortran.dg/proc_ptr_47.f90: Fix invalid test case. * gfortran.dg/proc_ptr_comp_pass_4.f90: Fix and extend test case. From-SVN: r257590
2018-02-12re PR tree-optimization/84037 (Speed regression of polyhedron benchmark ↵Richard Biener3-35/+70
since r256644) 2018-02-12 Richard Biener <rguenther@suse.de> PR tree-optimization/84037 * tree-vect-slp.c (vect_analyze_slp_cost): Add visited parameter, move visited init to caller. (vect_slp_analyze_operations): Separate cost from validity check, initialize visited once for all instances. (vect_schedule_slp): Analyze map to CSE vectorized nodes once for all instances. * tree-vect-stmts.c (vect_model_simple_cost): Make early out an assert. (vect_model_promotion_demotion_cost): Likewise. (vectorizable_bswap): Guard cost modeling with !slp_node instead of !PURE_SLP_STMT to avoid double-counting on hybrid SLP stmts. (vectorizable_call): Likewise. (vectorizable_conversion): Likewise. (vectorizable_assignment): Likewise. (vectorizable_shift): Likewise. (vectorizable_operation): Likewise. (vectorizable_store): Likewise. (vectorizable_load): Likewise. (vectorizable_condition): Likewise. (vectorizable_comparison): Likewise. From-SVN: r257588
2018-02-12Corrected mistakes in ChangeLog spotted by Jakub Jelinek.Sebastian Perta2-22/+28
From-SVN: r257587
2018-02-12re PR target/82641 (Unable to enable crc32 for a certain function with ↵Tamar Christina2-1/+6
target attribute on ARM (aarch32)) 2018-02-12 Tamar Christina <tamar.christina@arm.com> PR target/82641 * gcc.target/arm/pragma_arch_switch_2.c: Use armv5te. From-SVN: r257586
2018-02-12re PR sanitizer/84307 (asan blocks dead-store elimination)Paolo Bonzini4-2/+35
gcc: 2018-02-12 Paolo Bonzini <bonzini@gnu.org> PR sanitizer/84307 * internal-fn.def (ASAN_CHECK): Fix fnspec to account for return value. (ASAN_MARK): Fix fnspec to account for return value, change pointer argument from 'R' to 'W' so that the pointed-to datum is clobbered. gcc/testsuite: 2018-02-12 Paolo Bonzini <bonzini@gnu.org> PR sanitizer/84307 * gcc.dg/asan/pr84307.c: New test. From-SVN: r257585
2018-02-12[PR c++/84263] GC ICE with decltypeNathan Sidwell4-54/+103
https://gcc.gnu.org/ml/gcc-patches/2018-02/msg00435.html PR c++/84263 * parser.c (cp_parser_decltype): Push and pop deferring_access_checks. Reorganize to avoid goto. * g++.dg/parse/pr84263.C: New. From-SVN: r257584
2018-02-12re PR c++/79626 (ICE on invalid code in build_temp (call.c:6489))Paolo Carlini2-0/+10
2018-02-12 Paolo Carlini <paolo.carlini@oracle.com> PR c++/79626 * g++.dg/template/crash129.C: New. From-SVN: r257583
2018-02-12re PR middle-end/83665 (Big code size regression and some code quality ↵Jan Hubicka4-7/+21
improvement at Jan 2 2018) PR middle-end/83665 * params.def (inline-min-speedup): Increase from 8 to 15. (max-inline-insns-auto): Decrease from 40 to 30. * ipa-split.c (consider_split): Add some buffer for function to be considered inlining candidate. * invoke.texi (max-inline-insns-auto, inline-min-speedup): UPdate default values. From-SVN: r257582
2018-02-12re PR tree-optimization/84037 (Speed regression of polyhedron benchmark ↵Richard Biener2-22/+57
since r256644) 2018-02-12 Richard Biener <rguenther@suse.de> PR tree-optimization/84037 * tree-vect-slp.c (vect_build_slp_tree_2): Try swapping the matched stmts if we cannot swap the non-matched ones. From-SVN: r257581
2018-02-12re PR c++/84281 (Heap grows indefinitely)Richard Biener2-6/+12
2018-02-12 Richard Biener <rguenther@suse.de> PR c++/84281 * constexpr.c (cxx_eval_vec_init_1): Use a RANGE_EXPR to compact uniform constructors and delay allocating them fully. From-SVN: r257580
2018-02-12Fix AVX-512 popcnt and bitalg tests.Olga Makhotina6-10/+14
gcc/testsuite/ PR target/83828 * gcc.target/i386/avx512bitalg-vpopcntb-1.c: Fix test. * gcc.target/i386/avx512bitalg-vpopcntw-1.c: Ditto. * gcc.target/i386/avx512bitalg-vpshufbitqmb-1.c: Ditto. * gcc.target/i386/avx512vpopcntdq-vpopcntd-1.c: Ditto. * gcc.target/i386/avx512vpopcntdq-vpopcntq-1.c: Ditto. From-SVN: r257579
2018-02-12Add missing mask[z]_scalef_round_s[d,s] intrinsicsOlga Makhotina13-27/+192
gcc/ * config/i386/avx512fintrin.h (_mm_mask_scalef_round_sd, _mm_maskz_scalef_round_sd, _mm_mask_scalef_round_ss, _mm_maskz_scalef_round_ss): New intrinsics. (__builtin_ia32_scalefsd_round, __builtin_ia32_scalefss_round): Fix. * config/i386/i386-builtin.def (__builtin_ia32_scalefsd_round, __builtin_ia32_scalefss_round): Remove. (__builtin_ia32_scalefsd_mask_round, __builtin_ia32_scalefss_mask_round): New intrinsics. * config/i386/sse.md (vmscalef<mode><round_name>): Renamed to ... (vmscalef<mode><mask_scalar_name><round_scalar_name>): ... this. ((match_operand:VF_128 2 "<round_nimm_predicate>" "<round_constraint>")): Changed to ... ((match_operand:VF_128 2 "<round_scalar_nimm_predicate>" "<round_scalar_constraint>")): ... this. ("vscalef<ssescalarmodesuffix>\t{<round_op3>%2, %1, %0| %0, %1, %2<round_op3>}"): Changed to ... ("vscalef<ssescalarmodesuffix>\t{<round_scalar_mask_op3>%2, %1, %0<mask_scalar_operand3>|%0<mask_scalar_operand3>, %1, %2<round_scalar_mask_op3>}"): ... this. * config/i386/subst.md (round_scalar_nimm_predicate): New. gcc/testsuite/ * gcc.target/i386/avx512f-vscalefsd-1.c (_mm_mask_scalef_round_sd, _mm_maskz_scalef_round_sd): Test new intrinsics. * gcc.target/i386/avx512f-vscalefsd-2.c (_mm_scalef_round_sd, _mm_mask_scalef_round_sd, _mm_maskz_scalef_round_sd): Test new intrinsics. * gcc.target/i386/avx512f-vscalefss-1.c (_mm_mask_scalef_round_ss, _mm_maskz_scalef_round_ss): Test new intrinsics. * gcc.target/i386/avx512f-vscalefss-2.c (_mm_scalef_round_ss, _mm_mask_scalef_round_ss, _mm_maskz_scalef_round_ss): Test new intrinsics. * gcc.target/i386/avx-1.c (__builtin_ia32_scalefsd_round, __builtin_ia32_scalefss_round): Remove builtin. (__builtin_ia32_scalefsd_mask_round, __builtin_ia32_scalefss_mask_round): Test new builtin. * gcc.target/i386/sse-13.c: Ditto. * gcc.target/i386/sse-23.c: Ditto. From-SVN: r257578
2018-02-12Add missing ChangeLog entry for previous patch.Olga Makhotina1-0/+26
From-SVN: r257577
2018-02-12Add missing intrinsics for _mm_mask[z]_sqrt_round_[sd,ss]Olga Makhotina11-22/+240
gcc/ * config/i386/avx512fintrin.h (_mm_mask_sqrt_round_sd) (_mm_maskz_sqrt_round_sd, _mm_mask_sqrt_round_ss) (_mm_maskz_sqrt_round_ss): New intrinsics. (__builtin_ia32_sqrtsd_round, __builtin_ia32_sqrtss_round): Remove. (__builtin_ia32_sqrtsd_mask_round) (__builtin_ia32_sqrtss_mask_round): New builtins. * config/i386/i386-builtin.def (__builtin_ia32_sqrtsd_round) (__builtin_ia32_sqrtss_round): Remove. (__builtin_ia32_sqrtsd_mask_round) (__builtin_ia32_sqrtss_mask_round): New builtins. * config/i386/sse.md (vmsqrt<mode>2<round_name>): Renamed to ... (vmsqrt<mode>2<mask_scalar_name><round_scalar_name>): ... this. ((match_operand:VF_128 1 "vector_operand" "xBm,<round_constraint>")): Changed to ... ((match_operand:VF_128 1 "vector_operand" "xBm,<round_scalar_constraint>")): ... this. (vsqrt<ssescalarmodesuffix>\t{<round_op3>%1, %2, %0| %0, %2, %<iptr>1<round_op3>}): Changed to ... (vsqrt<ssescalarmodesuffix>\t{<round_scalar_mask_op3>%1, %2, %0<mask_scalar_operand3>|%0<mask_scalar_operand3>, %2, %<iptr>1<round_scalar_mask_op3>}): ... this. ((set_attr "prefix" "<round_prefix>")): Changed to ... ((set_attr "prefix" "<round_scalar_prefix>")): ... this. gcc/testsuite/ * gcc.target/i386/avx512f-vsqrtsd-1.c (_mm_mask_sqrt_round_sd) (_mm_maskz_sqrt_round_sd): Test new intrinsics. * gcc.target/i386/avx512f-vsqrtsd-2.c (_mm_sqrt_round_sd) (_mm_mask_sqrt_round_sd, _mm_maskz_sqrt_round_sd): Test new intrinsics. * gcc.target/i386/avx512f-vsqrtss-1.c (_mm_mask_sqrt_round_ss) (_mm_maskz_sqrt_round_ss): Test new intrinsics. * gcc.target/i386/avx512f-vsqrtss-2.c (_mm_sqrt_round_ss) (_mm_mask_sqrt_round_ss,      _mm_maskz_sqrt_round_ss): Test new intrinsics. * gcc.target/i386/avx-1.c (__builtin_ia32_sqrtsd_round) (__builtin_ia32_sqrtss_round): Remove builtins. (__builtin_ia32_sqrtsd_mask_round) (__builtin_ia32_sqrtss_mask_round): Test new builtins. * gcc.target/i386/sse-13.c: Ditto. * gcc.target/i386/sse-23.c: Ditto. From-SVN: r257576