Commit Graph

164757 Commits

Author SHA1 Message Date
Tamar Christina
d4eb0305b8 Fix mingw-w64 Ada native bootstrap (PR81878).
Due to the changes in PR81878 builds of GCC8 and trunk are impossible
with Ada enabled[1][2].

The reason the patch breaks the bootstrap is due to how gnatlink receives it's
arguments.

gnatlink is usually invoked as

        $(GNATLINK) -v gnatcmd -o ../../gnat$(exeext) \
          --GCC="$(CC) $(ADA_INCLUDES)" --LINK="$(GCC_LINK)" $(TOOLS_LIBS)

so it passes $(CC) and $(GCC_LINK) as quoted arguments to the program.
Because of this quotation the msys2 shell does not translate any paths in
$(CC) and $(GCC_LINK) from their Unix version to their Windows version.

Furthermore because there are multiple paths in the values separated by space
and because the paths often contain a prefix like -L (e.g. -L/f/foo) we can't
use `fix_srcfile_path` to fix this.

An alternative solution would have been to create a stub program that echos the
commandline options it receives back, and calling this program with $(CC) and $(GCC_LINK)
unquoted to get them translated.  However this was a bit more invasive.

So instead for native compilations we add -B../../ such that it picks up the lto plugin
from the previous built compiler.  Since it's native there shouldn't be a mismatch here.

[1] https://github.com/Alexpux/MINGW-packages/pull/3877#issuecomment-408651809
[2] https://gcc.gnu.org/ml/gcc/2018-07/msg00410.html

gnattools/ChangeLog:

	PR ada/81878
	* Makefile.in (TOOLS_FLAGS_TO_PASS_NATIVE): Add -B ../../.

From-SVN: r265583
2018-10-29 09:45:50 +00:00
Segher Boessenkool
aef7647f4a combine: Fix various shortcomings in make_more_copies (PR87701, PR87780)
This rewrites most of make_more_copies, in the process fixing a few PRs
and some other bugs, and working around a few target problems.  Certain
notes turn out to actually change the meaning of the RTL, so we cannot
drop them; and i386 takes subregs of hard regs.


	PR rtl-optimization/87701
	PR rtl-optimization/87780
	* combine.c (make_more_copies): Rewrite.

From-SVN: r265582
2018-10-29 08:36:45 +01:00
GCC Administrator
6679694ac9 Daily bump.
From-SVN: r265581
2018-10-29 00:16:52 +00:00
Kugan Vivekanandarajah
64f7ea7c54 gimplefe-30.c: New test.
gcc/testsuite/ChangeLog:

2018-10-28  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* gcc.dg/gimplefe-30.c: New test.
	* gcc.dg/gimplefe-31.c: New test.
	* gcc.dg/gimplefe-32.c: New test.
	* gcc.dg/gimplefe-33.c: New test.


gcc/ChangeLog:

2018-10-28  Kugan Vivekanandarajah  <kuganv@linaro.org>

	* doc/generic.texi (ABSU_EXPR): Document.
        * match.pd (absu(x)*absu(x) -> x*x): Handle.
        (absu(absu(X)) -> absu(X)): Likewise.
        (absu(-X) -> absu(X)): Likewise.
        (absu(X)  where X is nonnegative -> X): Likewise.

From-SVN: r265578
2018-10-29 00:03:20 +00:00
François Dumont
881eaae688 48101_neg.cc: Remove dg-prune-output 'std' from regex pattern for versioned namespace...
2018-10-28  François Dumont  <fdumont@gcc.gnu.org>

	* testsuite/23_containers/deque/48101_neg.cc: Remove dg-prune-output
	'std' from regex pattern for versioned namespace compatibility.
	* testsuite/23_containers/vector/48101_neg.cc: Likewise.
	* testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise.

From-SVN: r265575
2018-10-28 20:57:04 +00:00
Iain Buclaw
b4c522fabd Add D front-end, libphobos library, and D2 testsuite.
ChangeLog:

	* Makefile.def (target_modules): Add libphobos.
	(flags_to_pass): Add GDC, GDCFLAGS, GDC_FOR_TARGET and
	GDCFLAGS_FOR_TARGET.
	(dependencies): Make libphobos depend on libatomic, libbacktrace
	configure, and zlib configure.
	(language): Add language d.
	* Makefile.in: Rebuild.
	* Makefile.tpl (BUILD_EXPORTS): Add GDC and GDCFLAGS.
	(HOST_EXPORTS): Add GDC.
	(POSTSTAGE1_HOST_EXPORTS): Add GDC and GDC_FOR_BUILD.
	(BASE_TARGET_EXPORTS): Add GDC.
	(GDC_FOR_BUILD, GDC, GDCFLAGS): New variables.
	(GDC_FOR_TARGET, GDC_FLAGS_FOR_TARGET): New variables.
	(EXTRA_HOST_FLAGS): Add GDC.
	(STAGE1_FLAGS_TO_PASS): Add GDC.
	(EXTRA_TARGET_FLAGS): Add GDC and GDCFLAGS.
	* config-ml.in: Treat GDC and GDCFLAGS like other compiler/flag
	environment variables.
	* configure: Rebuild.
	* configure.ac: Add target-libphobos to target_libraries.  Set and
	substitute GDC_FOR_BUILD and GDC_FOR_TARGET.

config/ChangeLog:

	* multi.m4: Set GDC.

gcc/ChangeLog:

	* Makefile.in (tm_d_file_list, tm_d_include_list): New variables.
	(TM_D_H, D_TARGET_DEF, D_TARGET_H, D_TARGET_OBJS): New variables.
	(tm_d.h, cs-tm_d.h, default-d.o): New rules.
	(d/d-target-hooks-def.h, s-d-target-hooks-def-h): New rules.
	(s-tm-texi): Also check timestamp on d-target.def.
	(generated_files): Add TM_D_H and d-target-hooks-def.h.
	(build/genhooks.o): Also depend on D_TARGET_DEF.
	* config.gcc (tm_d_file, d_target_objs, target_has_targetdm): New
	variables.
	* config/aarch64/aarch64-d.c: New file.
	* config/aarch64/aarch64-linux.h (GNU_USER_TARGET_D_CRITSEC_SIZE):
	Define.
	* config/aarch64/aarch64-protos.h (aarch64_d_target_versions): New
	prototype.
	* config/aarch64/aarch64.h (TARGET_D_CPU_VERSIONS): Define.
	* config/aarch64/t-aarch64 (aarch64-d.o): New rule.
	* config/arm/arm-d.c: New file.
	* config/arm/arm-protos.h (arm_d_target_versions): New prototype.
	* config/arm/arm.h (TARGET_D_CPU_VERSIONS): Define.
	* config/arm/linux-eabi.h (EXTRA_TARGET_D_OS_VERSIONS): Define.
	* config/arm/t-arm (arm-d.o): New rule.
	* config/default-d.c: New file.
	* config/glibc-d.c: New file.
	* config/gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Define.
	* config/i386/i386-d.c: New file.
	* config/i386/i386-protos.h (ix86_d_target_versions): New prototype.
	* config/i386/i386.h (TARGET_D_CPU_VERSIONS): Define.
	* config/i386/linux-common.h (EXTRA_TARGET_D_OS_VERSIONS): Define.
	(GNU_USER_TARGET_D_CRITSEC_SIZE): Define.
	* config/i386/t-i386 (i386-d.o): New rule.
	* config/kfreebsd-gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Define.
	* config/kopensolaris-gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Define.
	* config/linux-android.h (ANDROID_TARGET_D_OS_VERSIONS): Define.
	* config/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Define.
	* config/mips/linux-common.h (EXTRA_TARGET_D_OS_VERSIONS): Define.
	* config/mips/mips-d.c: New file.
	* config/mips/mips-protos.h (mips_d_target_versions): New prototype.
	* config/mips/mips.h (TARGET_D_CPU_VERSIONS): Define.
	* config/mips/t-mips (mips-d.o): New rule.
	* config/powerpcspe/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Define.
	* config/powerpcspe/linux64.h (GNU_USER_TARGET_D_OS_VERSIONS): Define.
	* config/powerpcspe/powerpcspe-d.c: New file.
	* config/powerpcspe/powerpcspe-protos.h (rs6000_d_target_versions):
	New prototype.
	* config/powerpcspe/powerpcspe.c (rs6000_output_function_epilogue):
	Support GNU D by using 0 as the language type.
	* config/powerpcspe/powerpcspe.h (TARGET_D_CPU_VERSIONS): Define.
	* config/powerpcspe/t-powerpcspe (powerpcspe-d.o): New rule.
	* config/riscv/riscv-d.c: New file.
	* config/riscv/riscv-protos.h (riscv_d_target_versions): New
	prototype.
	* config/riscv/riscv.h (TARGET_D_CPU_VERSIONS): Define.
	* config/riscv/t-riscv (riscv-d.o): New rule.
	* config/rs6000/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Define.
	* config/rs6000/linux64.h (GNU_USER_TARGET_D_OS_VERSIONS): Define.
	* config/rs6000/rs6000-d.c: New file.
	* config/rs6000/rs6000-protos.h (rs6000_d_target_versions): New
	prototype.
	* config/rs6000/rs6000.c (rs6000_output_function_epilogue):
	Support GNU D by using 0 as the language type.
	* config/rs6000/rs6000.h (TARGET_D_CPU_VERSIONS): Define.
	* config/rs6000/t-rs6000 (rs6000-d.o): New rule.
	* config/s390/s390-d.c: New file.
	* config/s390/s390-protos.h (s390_d_target_versions): New prototype.
	* config/s390/s390.h (TARGET_D_CPU_VERSIONS): Define.
	* config/s390/t-s390 (s390-d.o): New rule.
	* config/sparc/sparc-d.c: New file.
	* config/sparc/sparc-protos.h (sparc_d_target_versions): New
	prototype.
	* config/sparc/sparc.h (TARGET_D_CPU_VERSIONS): Define.
	* config/sparc/t-sparc (sparc-d.o): New rule.
	* config/t-glibc (glibc-d.o): New rule.
	* configure: Regenerated.
	* configure.ac (tm_d_file): New variable.
	(tm_d_file_list, tm_d_include_list, d_target_objs): Add substitutes.
	* doc/contrib.texi (Contributors): Add self for the D frontend.
	* doc/frontends.texi (G++ and GCC): Mention D as a supported language.
	* doc/install.texi (Configuration): Mention libphobos as an option for
	--enable-shared.  Mention d as an option for --enable-languages.
	(Testing): Mention check-d as a target.
	* doc/invoke.texi (Overall Options): Mention .d, .dd, and .di as file
	name suffixes.  Mention d as a -x option.
	* doc/sourcebuild.texi (Top Level): Mention libphobos.
	* doc/standards.texi (Standards): Add section on D language.
	* doc/tm.texi: Regenerated.
	* doc/tm.texi.in: Add @node for D language and ABI, and @hook for
	TARGET_CPU_VERSIONS, TARGET_D_OS_VERSIONS, and TARGET_D_CRITSEC_SIZE.
	* dwarf2out.c (is_dlang): New function.
	(gen_compile_unit_die): Use DW_LANG_D for D.
	(declare_in_namespace): Return module die for D, instead of adding
	extra declarations into the namespace.
	(gen_namespace_die): Generate DW_TAG_module for D.
	(gen_decl_die): Handle CONST_DECLSs for D.
	(dwarf2out_decl): Likewise.
	(prune_unused_types_walk_local_classes): Handle DW_tag_interface_type.
	(prune_unused_types_walk): Handle DW_tag_interface_type same as other
	kinds of aggregates.
	* gcc.c (default_compilers): Add entries for .d, .dd and .di.
	* genhooks.c: Include d/d-target.def.

gcc/po/ChangeLog:

	* EXCLUDES: Add sources from d/dmd.

gcc/testsuite/ChangeLog:

	* gcc.misc-tests/help.exp: Add D to option descriptions check.
	* gdc.dg/asan/asan.exp: New file.
	* gdc.dg/asan/gdc272.d: New test.
	* gdc.dg/compilable.d: New test.
	* gdc.dg/dg.exp: New file.
	* gdc.dg/gdc254.d: New test.
	* gdc.dg/gdc260.d: New test.
	* gdc.dg/gdc270a.d: New test.
	* gdc.dg/gdc270b.d: New test.
	* gdc.dg/gdc282.d: New test.
	* gdc.dg/gdc283.d: New test.
	* gdc.dg/imports/gdc170.d: New test.
	* gdc.dg/imports/gdc231.d: New test.
	* gdc.dg/imports/gdc239.d: New test.
	* gdc.dg/imports/gdc241a.d: New test.
	* gdc.dg/imports/gdc241b.d: New test.
	* gdc.dg/imports/gdc251a.d: New test.
	* gdc.dg/imports/gdc251b.d: New test.
	* gdc.dg/imports/gdc253.d: New test.
	* gdc.dg/imports/gdc254a.d: New test.
	* gdc.dg/imports/gdc256.d: New test.
	* gdc.dg/imports/gdc27.d: New test.
	* gdc.dg/imports/gdcpkg256/package.d: New test.
	* gdc.dg/imports/runnable.d: New test.
	* gdc.dg/link.d: New test.
	* gdc.dg/lto/lto.exp: New file.
	* gdc.dg/lto/ltotests_0.d: New test.
	* gdc.dg/lto/ltotests_1.d: New test.
	* gdc.dg/runnable.d: New test.
	* gdc.dg/simd.d: New test.
	* gdc.test/gdc-test.exp: New file.
	* lib/gdc-dg.exp: New file.
	* lib/gdc.exp: New file.

libphobos/ChangeLog:

	* Makefile.am: New file.
	* Makefile.in: New file.
	* acinclude.m4: New file.
	* aclocal.m4: New file.
	* config.h.in: New file.
	* configure: New file.
	* configure.ac: New file.
	* d_rules.am: New file.
	* libdruntime/Makefile.am: New file.
	* libdruntime/Makefile.in: New file.
	* libdruntime/__entrypoint.di: New file.
	* libdruntime/__main.di: New file.
	* libdruntime/gcc/attribute.d: New file.
	* libdruntime/gcc/backtrace.d: New file.
	* libdruntime/gcc/builtins.d: New file.
	* libdruntime/gcc/config.d.in: New file.
	* libdruntime/gcc/deh.d: New file.
	* libdruntime/gcc/libbacktrace.d.in: New file.
	* libdruntime/gcc/unwind/arm.d: New file.
	* libdruntime/gcc/unwind/arm_common.d: New file.
	* libdruntime/gcc/unwind/c6x.d: New file.
	* libdruntime/gcc/unwind/generic.d: New file.
	* libdruntime/gcc/unwind/package.d: New file.
	* libdruntime/gcc/unwind/pe.d: New file.
	* m4/autoconf.m4: New file.
	* m4/druntime.m4: New file.
	* m4/druntime/cpu.m4: New file.
	* m4/druntime/libraries.m4: New file.
	* m4/druntime/os.m4: New file.
	* m4/gcc_support.m4: New file.
	* m4/gdc.m4: New file.
	* m4/libtool.m4: New file.
	* src/Makefile.am: New file.
	* src/Makefile.in: New file.
	* src/libgphobos.spec.in: New file.
	* testsuite/Makefile.am: New file.
	* testsuite/Makefile.in: New file.
	* testsuite/config/default.exp: New file.
	* testsuite/lib/libphobos-dg.exp: New file.
	* testsuite/lib/libphobos.exp: New file.
	* testsuite/testsuite_flags.in: New file.

From-SVN: r265573
2018-10-28 19:51:47 +00:00
Thomas Koenig
01ce9e31a0 re PR fortran/54613 ([F08] Add FINDLOC plus support MAXLOC/MINLOC with KIND=/BACK=)
2017-10-28  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/54613
	* gfortran.h (gfc_isym_id): Add GFC_ISYM_FINDLOC.
	(gfc_check_f): Add f6fl field.
	(gfc_simplify_f): Add f6 field.
	(gfc_resolve_f): Likewise.
	(gfc_type_letter): Add optional logical_equas_int flag.
	* check.c (intrinsic_type_check): New function.
	(gfc_check_findloc): New function.
	* intrinsics.c (gfc_type_letter): If logical_equals_int is
	set, act accordingly.
	(add_sym_5ml):  Reformat comment.
	(add_sym_6fl): New function.
	(add_functions): Add findloc.
	(check_arglist): Add sixth argument, handle it.
	(resolve_intrinsic): Likewise.
	(check_specific): Handle findloc.
	* intrinsic.h (gfc_check_findloc): Add prototype.
	(gfc_simplify_findloc): Likewise.
	(gfc_resolve_findloc): Likewise.
	(MAX_INTRINSIC_ARGS): Adjust.
	* iresolve.c (gfc_resolve_findloc): New function.
	* simplify.c (gfc_simplify_minmaxloc): Make static.
	(simplify_findloc_to_scalar): New function.
	(simplify_findloc_nodim): New function.
	(simplify_findloc_to_array): New function.
	(gfc_simplify_findloc): New function.
	(gfc_conv_intrinsic_findloc): New function.
	(gfc_conv_intrinsic_function): Handle GFC_ISYM_FINDLOC.
	(gfc_is_intrinsic_libcall): Likewise.

2017-10-28  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/54613
	* Makefile.am: Add files for findloc.
	* Makefile.in: Regenerated.
	* libgfortran.h (gfc_array_index_type): Add.
	(gfc_array_s1): Add using GFC_UINTEGER_1.
	(gfc_array_s4): Likewise.
	Replace unnecessary comment.
	(HAVE_GFC_UINTEGER_1): Define.
	(HAVE_GFC_UINTEGER_4): Define.
	* m4/findloc0.m4: New file.
	* m4/findloc0s.m4: New file.
	* m4/findloc1.m4: New file.
	* m4/findloc1s.m4: New file.
	* m4/findloc2s.m4: New file.
	* m4/ifindloc0.m4: New file.
	* m4/ifindloc1.m4: New file.
	* m4/ifindloc2.m4: New file.
	* m4/iparm.m4: Use unsigned integer for characters.
        * generated/findloc0_c16.c: New file.
        * generated/findloc0_c4.c: New file.
        * generated/findloc0_c8.c: New file.
        * generated/findloc0_i1.c: New file.
        * generated/findloc0_i16.c: New file.
        * generated/findloc0_i2.c: New file.
        * generated/findloc0_i4.c: New file.
        * generated/findloc0_i8.c: New file.
        * generated/findloc0_r16.c: New file.
        * generated/findloc0_r4.c: New file.
        * generated/findloc0_r8.c: New file.
        * generated/findloc0_s1.c: New file.
        * generated/findloc0_s4.c: New file.
        * generated/findloc1_c16.c: New file.
        * generated/findloc1_c4.c: New file.
        * generated/findloc1_c8.c: New file.
        * generated/findloc1_i1.c: New file.
        * generated/findloc1_i16.c: New file.
        * generated/findloc1_i2.c: New file.
        * generated/findloc1_i4.c: New file.
        * generated/findloc1_i8.c: New file.
        * generated/findloc1_r16.c: New file.
        * generated/findloc1_r4.c: New file.
        * generated/findloc1_r8.c: New file.
        * generated/findloc1_s1.c: New file.
        * generated/findloc1_s4.c: New file.
        * generated/findloc2_s1.c: New file.
        * generated/findloc2_s4.c: New file.
        * generated/maxloc0_16_s1.c: Regenerated.
        * generated/maxloc0_16_s4.c: Regenerated.
        * generated/maxloc0_4_s1.c: Regenerated.
        * generated/maxloc0_4_s4.c: Regenerated.
        * generated/maxloc0_8_s1.c: Regenerated.
        * generated/maxloc0_8_s4.c: Regenerated.
        * generated/maxloc1_16_s1.c: Regenerated.
        * generated/maxloc1_16_s4.c: Regenerated.
        * generated/maxloc1_4_s1.c: Regenerated.
        * generated/maxloc1_4_s4.c: Regenerated.
        * generated/maxloc1_8_s1.c: Regenerated.
        * generated/maxloc1_8_s4.c: Regenerated.
        * 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/maxval0_s1.c: Regenerated.
        * generated/maxval0_s4.c: Regenerated.
        * generated/maxval1_s1.c: Regenerated.
        * generated/maxval1_s4.c: Regenerated.
        * generated/minloc0_16_s1.c: Regenerated.
        * generated/minloc0_16_s4.c: Regenerated.
        * generated/minloc0_4_s1.c: Regenerated.
        * generated/minloc0_4_s4.c: Regenerated.
        * generated/minloc0_8_s1.c: Regenerated.
        * generated/minloc0_8_s4.c: Regenerated.
        * generated/minloc1_16_s1.c: Regenerated.
        * generated/minloc1_16_s4.c: Regenerated.
        * generated/minloc1_4_s1.c: Regenerated.
        * generated/minloc1_4_s4.c: Regenerated.
        * generated/minloc1_8_s1.c: Regenerated.
        * generated/minloc1_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.
        * generated/minval0_s1.c: Regenerated.
        * generated/minval0_s4.c: Regenerated.
        * generated/minval1_s1.c: Regenerated.
        * generated/minval1_s4.c: Regenerated.

2017-10-28  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/54613
	* gfortran.dg/findloc_1.f90: New test.
	* gfortran.dg/findloc_2.f90: New test.
	* gfortran.dg/findloc_3.f90: New test.
	* gfortran.dg/findloc_4.f90: New test.
	* gfortran.dg/findloc_5.f90: New test.
	* gfortran.dg/findloc_6.f90: New test.

From-SVN: r265570
2018-10-28 11:05:05 +00:00
Iain Sandoe
b10fb07830 darwin - fix powerpc-darwin stack alignments
2018-10-28  Iain Sandoe  <iain@sandoe.co.uk>

	PR target/85669
	* config/rs6000/darwin.h (STACK_BOUNDARY): New.
	(RS6000_STARTING_FRAME_OFFSET): Adjust to preserve 16byte alignment.
	(STACK_DYNAMIC_OFFSET): Likewise.

From-SVN: r265568
2018-10-28 09:25:43 +00:00
GCC Administrator
01497ce738 Daily bump.
From-SVN: r265564
2018-10-28 00:16:44 +00:00
Sandra Loosemore
6e0686e124 re PR target/80024 (nios2: unclear wording "numeric digits" in diagnostic)
2018-10-27  Sandra Loosemore  <sandra@codesourcery.com>

	PR target/80024

	gcc/
	* config/nios2/nios2.c (nios2_valid_target_attribute_rec): Fix
	error message.

From-SVN: r265561
2018-10-27 17:34:43 -04:00
Thomas Koenig
e146ea17d7 re PR fortran/86907 (bogus warning "No location in expression near")
2018-10-27  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/86907
	* frontend-passes.c (check_locus_code): Add information that
	warning about missing location information points to an
	inconsisten internal state.
	(check_locus_expr): Likewise.

From-SVN: r265559
2018-10-27 10:26:23 +00:00
GCC Administrator
9abee840ce Daily bump.
From-SVN: r265554
2018-10-27 00:16:42 +00:00
Tulio Magno Quites Machado Filho
e6c5724129 powerpc: Fix typos in the manual
2018-10-26  Tulio Magno Quites Machado Filho  <tuliom@linux.ibm.com>

	* doc/extend.texi (PowerPC builtins): Fix __builtin_unpack_ibm128
	return type and other typos.

From-SVN: r265548
2018-10-26 23:32:15 +02:00
Aaron Sawdey
ef4adf1f79 rs6000-string.c (expand_strncmp_gpr_sequence): Change to a shorter sequence with fewer branches.
2018-10-26  Aaron Sawdey  <acsawdey@linux.ibm.com>

	* config/rs6000/rs6000-string.c (expand_strncmp_gpr_sequence): Change to
	a shorter sequence with fewer branches.
	(emit_final_str_compare_gpr): Ditto.

From-SVN: r265546
2018-10-26 14:33:31 -05:00
Bill Schmidt
ffd0bbe152 sse-addss-1.c: Call abort under DEBUG also; formatting cleanup.
2018-10-26  Bill Schmidt  <wschmidt@linux.ibm.com>
	    Jinsong Ji  <jji@us.ibm.com>

	* gcc.target/powerpc/sse-addss-1.c: Call abort under DEBUG also;
	formatting cleanup.
	* gcc.target/powerpc/sse-pavgw-1.c: Likewise.
	* gcc.target/powerpc/sse2-addsd-1.c: Likewise.
	* gcc.target/powerpc/sse2-cvtdq2pd-1.c: Likewise.
	* gcc.target/powerpc/sse2-cvtpd2dq-1.c: Likewise.
	* gcc.target/powerpc/sse2-cvtpd2ps-1.c: Likewise.
	* gcc.target/powerpc/sse2-cvtps2dq-1.c: Likewise.
	* gcc.target/powerpc/sse2-cvtps2pd-1.c: Likewise.
	* gcc.target/powerpc/sse2-cvtsd2si-1.c: Likewise.
	* gcc.target/powerpc/sse2-cvtsd2si-2.c: Likewise.
	* gcc.target/powerpc/sse2-cvtsd2ss-1.c: Likewise.
	* gcc.target/powerpc/sse2-cvtss2sd-1.c: Likewise.
	* gcc.target/powerpc/sse2-cvttpd2dq-1.c: Likewise.
	* gcc.target/powerpc/sse2-cvttsd2si-1.c: Likewise.
	* gcc.target/powerpc/sse2-divpd-1.c: Likewise.
	* gcc.target/powerpc/sse2-divsd-1.c: Likewise.
	* gcc.target/powerpc/sse2-maxsd-1.c: Likewise.
	* gcc.target/powerpc/sse2-minsd-1.c: Likewise.
	* gcc.target/powerpc/sse2-movmskpd-1.c: Likewise.
	* gcc.target/powerpc/sse2-movq-1.c: Likewise.
	* gcc.target/powerpc/sse2-movsd-3.c: Likewise.
	* gcc.target/powerpc/sse2-mulpd-1.c: Likewise.
	* gcc.target/powerpc/sse2-mulsd-1.c: Likewise.
	* gcc.target/powerpc/sse2-packssdw-1.c: Likewise.
	* gcc.target/powerpc/sse2-packsswb-1.c: Likewise.
	* gcc.target/powerpc/sse2-packuswb-1.c: Likewise.
	* gcc.target/powerpc/sse2-paddsb-1.c: Likewise.
	* gcc.target/powerpc/sse2-paddsw-1.c: Likewise.
	* gcc.target/powerpc/sse2-paddusb-1.c: Likewise.
	* gcc.target/powerpc/sse2-pmovmskb-1.c: Likewise.
	* gcc.target/powerpc/sse2-pmulhw-1.c: Likewise.
	* gcc.target/powerpc/sse2-pmuludq1.c: Likewise.
	* gcc.target/powerpc/sse2-psadbw-1.c: Likewise.
	* gcc.target/powerpc/sse2-pshufd-1.c: Likewise.
	* gcc.target/powerpc/sse2-pshufhw-1.c: Likewise.
	* gcc.target/powerpc/sse2-pshuflw-1.c: Likewise.
	* gcc.target/powerpc/sse2-pslld-2.c: Likewise.
	* gcc.target/powerpc/sse2-pslldq-1.c: Likewise.
	* gcc.target/powerpc/sse2-psrld-1.c: Likewise.
	* gcc.target/powerpc/sse2-psrld-2.c: Likewise.
	* gcc.target/powerpc/sse2-psrldq-1.c: Likewise.
	* gcc.target/powerpc/sse2-psubusb-1.c: Likewise.
	* gcc.target/powerpc/sse2-sqrtpd-1.c: Likewise.
	* gcc.target/powerpc/sse2-subsd-1.c: Likewise.


Co-Authored-By: Jinsong Ji <jji@us.ibm.com>

From-SVN: r265545
2018-10-26 19:21:21 +00:00
Paul A. Clarke
f5c2ba6d68 [rs6000] Add tests for compatible implementations of x86 SSSE3 intrinsics
This is part 2/2 for contributing PPC64LE support for X86 SSSE3 instrisics.
This patch includes testsuite/gcc.target tests, copied from gcc.target/i386,
for the intrinsics defined in tmmintrin.h.

[gcc/testsuite]

2018-10-26  Paul A. Clarke  <pc@us.ibm.com>

	* gcc.target/powerpc/ssse3-check.h: New file.
	* gcc.target/powerpc/ssse3-vals.h: New file.
	* gcc.target/powerpc/ssse3-pabsb.c: New file.
	* gcc.target/powerpc/ssse3-pabsd.c: New file.
	* gcc.target/powerpc/ssse3-pabsw.c: New file.
	* gcc.target/powerpc/ssse3-palignr.c: New file.
	* gcc.target/powerpc/ssse3-phaddd.c: New file.
	* gcc.target/powerpc/ssse3-phaddsw.c: New file.
	* gcc.target/powerpc/ssse3-phaddw.c: New file.
	* gcc.target/powerpc/ssse3-phsubd.c: New file.
	* gcc.target/powerpc/ssse3-phsubsw.c: New file.
	* gcc.target/powerpc/ssse3-phsubw.c: New file.
	* gcc.target/powerpc/ssse3-pmaddubsw.c: New file.
	* gcc.target/powerpc/ssse3-pmulhrsw.c: New file.
	* gcc.target/powerpc/ssse3-pshufb.c: New file.
	* gcc.target/powerpc/ssse3-psignb.c: New file.
	* gcc.target/powerpc/ssse3-psignd.c: New file.
	* gcc.target/powerpc/ssse3-psignw.c: New file.

From-SVN: r265544
2018-10-26 19:02:23 +00:00
Paul A. Clarke
b1ddadacb8 [rs6000] Add compatible implementations of x86 SSSE3 intrinsics
This is a follow-on to earlier commits for adding compatibility
implementations of x86 intrinsics for PPC64LE.  This is the first of
two patches.  This patch adds the 32 x86 intrinsics from
<tmmintrin.h> ("SSSE3").  (Patch 2/2 adds tests for these intrinsics,
and briefly describes the tests performed.)

gcc/ChangeLog:

2018-10-26  Paul A. Clarke  <pc@us.ibm.com>

	* config/rs6000/tmmintrin.h: New file.
	* config.gcc (powerpc*-*-*): Add tmmintrin.h to extra_headers.

From-SVN: r265542
2018-10-26 18:38:25 +00:00
Ian Lance Taylor
827651b074 libgo: simplify gotest script to avoid sed substitution to \n
Reviewed-on: https://go-review.googlesource.com/c/145057

From-SVN: r265541
2018-10-26 18:36:44 +00:00
Paul A. Clarke
075b562c44 [rs6000] Enable 32bit support for tests of x86-compatibile intrinsics
Also, bugfix for mmx-packuswb-1.c, which had ommitted the required
"-mpower8-vector" from dg-options.

2018-10-26  Paul A. Clarke  <pc@us.ibm.com>

gcc/testsuite/ChangeLog:

	* gcc.target/powerpc/mmx-packs.c: Enable 32 bit execution.
	* gcc.target/powerpc/mmx-packssdw-1.c: Likewise.
	* gcc.target/powerpc/mmx-packsswb-1.c: Likewise.
	* gcc.target/powerpc/mmx-packs.c: Likewise.
	* gcc.target/powerpc/mmx-packssdw-1.c: Likewise.
	* gcc.target/powerpc/mmx-packsswb-1.c: Likewise.
	* gcc.target/powerpc/mmx-paddb-1.c: Likewise.
	* gcc.target/powerpc/mmx-paddd-1.c: Likewise.
	* gcc.target/powerpc/mmx-paddsb-1.c: Likewise.
	* gcc.target/powerpc/mmx-paddsw-1.c: Likewise.
	* gcc.target/powerpc/mmx-paddusb-1.c: Likewise.
	* gcc.target/powerpc/mmx-paddusw-1.c: Likewise.
	* gcc.target/powerpc/mmx-paddw-1.c: Likewise.
	* gcc.target/powerpc/mmx-pcmpeqb-1.c: Likewise.
	* gcc.target/powerpc/mmx-pcmpeqd-1.c: Likewise.
	* gcc.target/powerpc/mmx-pcmpeqw-1.c: Likewise.
	* gcc.target/powerpc/mmx-pcmpgtb-1.c: Likewise.
	* gcc.target/powerpc/mmx-pcmpgtd-1.c: Likewise.
	* gcc.target/powerpc/mmx-pcmpgtw-1.c: Likewise.
	* gcc.target/powerpc/mmx-pmaddwd-1.c: Likewise.
	* gcc.target/powerpc/mmx-pmulhw-1.c: Likewise.
	* gcc.target/powerpc/mmx-pmullw-1.c: Likewise.
	* gcc.target/powerpc/mmx-pslld-1.c: Likewise.
	* gcc.target/powerpc/mmx-psllw-1.c: Likewise.
	* gcc.target/powerpc/mmx-psrad-1.c: Likewise.
	* gcc.target/powerpc/mmx-psraw-1.c: Likewise.
	* gcc.target/powerpc/mmx-psrld-1.c: Likewise.
	* gcc.target/powerpc/mmx-psrlw-1.c: Likewise.
	* gcc.target/powerpc/mmx-psubb-2.c: Likewise.
	* gcc.target/powerpc/mmx-psubd-2.c: Likewise.
	* gcc.target/powerpc/mmx-psubsb-1.c: Likewise.
	* gcc.target/powerpc/mmx-psubsw-1.c: Likewise.
	* gcc.target/powerpc/mmx-psubusb-1.c: Likewise.
	* gcc.target/powerpc/mmx-psubusw-1.c: Likewise.
	* gcc.target/powerpc/mmx-psubw-2.c: Likewise.
	* gcc.target/powerpc/mmx-punpckhbw-1.c: Likewise.
	* gcc.target/powerpc/mmx-punpckhdq-1.c: Likewise.
	* gcc.target/powerpc/mmx-punpckhwd-1.c: Likewise.
	* gcc.target/powerpc/mmx-punpcklbw-1.c: Likewise.
	* gcc.target/powerpc/mmx-punpckldq-1.c: Likewise.
	* gcc.target/powerpc/mmx-punpcklwd-1.c: Likewise.
	* gcc.target/powerpc/pr37191.c: Likewise.
	* gcc.target/powerpc/sse-addps-1.c: Likewise.
	* gcc.target/powerpc/sse-addss-1.c: Likewise.
	* gcc.target/powerpc/sse-andnps-1.c: Likewise.
	* gcc.target/powerpc/sse-andps-1.c: Likewise.
	* gcc.target/powerpc/sse-cmpss-1.c: Likewise.
	* gcc.target/powerpc/sse-cvtpi16ps-1.c: Likewise.
	* gcc.target/powerpc/sse-cvtpi32ps-1.c: Likewise.
	* gcc.target/powerpc/sse-cvtpi32x2ps-1.c: Likewise.
	* gcc.target/powerpc/sse-cvtpi8ps-1.c: Likewise.
	* gcc.target/powerpc/sse-cvtpspi16-1.c: Likewise.
	* gcc.target/powerpc/sse-cvtpspi8-1.c: Likewise.
	* gcc.target/powerpc/sse-cvtpu16ps-1.c: Likewise.
	* gcc.target/powerpc/sse-cvtpu8ps-1.c: Likewise.
	* gcc.target/powerpc/sse-cvtsi2ss-1.c: Likewise.
	* gcc.target/powerpc/sse-cvtsi2ss-2.c: Likewise.
	* gcc.target/powerpc/sse-cvtss2si-1.c: Likewise.
	* gcc.target/powerpc/sse-cvtss2si-2.c: Likewise.
	* gcc.target/powerpc/sse-cvttss2si-1.c: Likewise.
	* gcc.target/powerpc/sse-cvttss2si-2.c: Likewise.
	* gcc.target/powerpc/sse-divps-1.c: Likewise.
	* gcc.target/powerpc/sse-divss-1.c: Likewise.
	* gcc.target/powerpc/sse-maxps-1.c: Likewise.
	* gcc.target/powerpc/sse-maxps-2.c: Likewise.
	* gcc.target/powerpc/sse-maxss-1.c: Likewise.
	* gcc.target/powerpc/sse-minps-1.c: Likewise.
	* gcc.target/powerpc/sse-minps-2.c: Likewise.
	* gcc.target/powerpc/sse-minss-1.c: Likewise.
	* gcc.target/powerpc/sse-movaps-1.c: Likewise.
	* gcc.target/powerpc/sse-movaps-2.c: Likewise.
	* gcc.target/powerpc/sse-movhlps-1.c: Likewise.
	* gcc.target/powerpc/sse-movhps-1.c: Likewise.
	* gcc.target/powerpc/sse-movhps-2.c: Likewise.
	* gcc.target/powerpc/sse-movlhps-1.c: Likewise.
	* gcc.target/powerpc/sse-movlps-1.c: Likewise.
	* gcc.target/powerpc/sse-movlps-2.c: Likewise.
	* gcc.target/powerpc/sse-movmskb-1.c: Likewise.
	* gcc.target/powerpc/sse-movmskps-1.c: Likewise.
	* gcc.target/powerpc/sse-movss-1.c: Likewise.
	* gcc.target/powerpc/sse-movss-2.c: Likewise.
	* gcc.target/powerpc/sse-movss-3.c: Likewise.
	* gcc.target/powerpc/sse-mulps-1.c: Likewise.
	* gcc.target/powerpc/sse-mulss-1.c: Likewise.
	* gcc.target/powerpc/sse-orps-1.c: Likewise.
	* gcc.target/powerpc/sse-pavgw-1.c: Likewise.
	* gcc.target/powerpc/sse-pmaxsw-1.c: Likewise.
	* gcc.target/powerpc/sse-pmaxub-1.c: Likewise.
	* gcc.target/powerpc/sse-pminsw-1.c: Likewise.
	* gcc.target/powerpc/sse-pminub-1.c: Likewise.
	* gcc.target/powerpc/sse-pmulhuw-1.c: Likewise.
	* gcc.target/powerpc/sse-psadbw-1.c: Likewise.
	* gcc.target/powerpc/sse-rcpps-1.c: Likewise.
	* gcc.target/powerpc/sse-rsqrtps-1.c: Likewise.
	* gcc.target/powerpc/sse-shufps-1.c: Likewise.
	* gcc.target/powerpc/sse-sqrtps-1.c: Likewise.
	* gcc.target/powerpc/sse-subps-1.c: Likewise.
	* gcc.target/powerpc/sse-subss-1.c: Likewise.
	* gcc.target/powerpc/sse-ucomiss-1.c: Likewise.
	* gcc.target/powerpc/sse-ucomiss-2.c: Likewise.
	* gcc.target/powerpc/sse-ucomiss-3.c: Likewise.
	* gcc.target/powerpc/sse-ucomiss-4.c: Likewise.
	* gcc.target/powerpc/sse-ucomiss-5.c: Likewise.
	* gcc.target/powerpc/sse-ucomiss-6.c: Likewise.
	* gcc.target/powerpc/sse-unpckhps-1.c: Likewise.
	* gcc.target/powerpc/sse-unpcklps-1.c: Likewise.
	* gcc.target/powerpc/sse-xorps-1.c: Likewise.
	* gcc.target/powerpc/sse2-addpd-1.c: Likewise.
	* gcc.target/powerpc/sse2-addsd-1.c: Likewise.
	* gcc.target/powerpc/sse2-andnpd-1.c: Likewise.
	* gcc.target/powerpc/sse2-andpd-1.c: Likewise.
	* gcc.target/powerpc/sse2-cmppd-1.c: Likewise.
	* gcc.target/powerpc/sse2-cmpsd-1.c: Likewise.
	* gcc.target/powerpc/sse2-comisd-1.c: Likewise.
	* gcc.target/powerpc/sse2-comisd-2.c: Likewise.
	* gcc.target/powerpc/sse2-comisd-3.c: Likewise.
	* gcc.target/powerpc/sse2-comisd-4.c: Likewise.
	* gcc.target/powerpc/sse2-comisd-5.c: Likewise.
	* gcc.target/powerpc/sse2-comisd-6.c: Likewise.
	* gcc.target/powerpc/sse2-cvtdq2pd-1.c: Likewise.
	* gcc.target/powerpc/sse2-cvtdq2ps-1.c: Likewise.
	* gcc.target/powerpc/sse2-cvtpd2dq-1.c: Likewise.
	* gcc.target/powerpc/sse2-cvtpd2ps-1.c: Likewise.
	* gcc.target/powerpc/sse2-cvtps2dq-1.c: Likewise.
	* gcc.target/powerpc/sse2-cvtps2pd-1.c: Likewise.
	* gcc.target/powerpc/sse2-cvtsd2si-1.c: Likewise.
	* gcc.target/powerpc/sse2-cvtsd2si-2.c: Likewise.
	* gcc.target/powerpc/sse2-cvtsd2ss-1.c: Likewise.
	* gcc.target/powerpc/sse2-cvtsi2sd-1.c: Likewise.
	* gcc.target/powerpc/sse2-cvtsi2sd-2.c: Likewise.
	* gcc.target/powerpc/sse2-cvtss2sd-1.c: Likewise.
	* gcc.target/powerpc/sse2-cvttpd2dq-1.c: Likewise.
	* gcc.target/powerpc/sse2-cvttps2dq-1.c: Likewise.
	* gcc.target/powerpc/sse2-cvttsd2si-1.c: Likewise.
	* gcc.target/powerpc/sse2-cvttsd2si-2.c: Likewise.
	* gcc.target/powerpc/sse2-divpd-1.c: Likewise.
	* gcc.target/powerpc/sse2-divsd-1.c: Likewise.
	* gcc.target/powerpc/sse2-maxpd-1.c: Likewise.
	* gcc.target/powerpc/sse2-maxsd-1.c: Likewise.
	* gcc.target/powerpc/sse2-minpd-1.c: Likewise.
	* gcc.target/powerpc/sse2-minsd-1.c: Likewise.
	* gcc.target/powerpc/sse2-mmx.c: Likewise.
	* gcc.target/powerpc/sse2-movhpd-1.c: Likewise.
	* gcc.target/powerpc/sse2-movhpd-2.c: Likewise.
	* gcc.target/powerpc/sse2-movlpd-1.c: Likewise.
	* gcc.target/powerpc/sse2-movlpd-2.c: Likewise.
	* gcc.target/powerpc/sse2-movmskpd-1.c: Likewise.
	* gcc.target/powerpc/sse2-movq-1.c: Likewise.
	* gcc.target/powerpc/sse2-movq-2.c: Likewise.
	* gcc.target/powerpc/sse2-movq-3.c: Likewise.
	* gcc.target/powerpc/sse2-movsd-1.c: Likewise.
	* gcc.target/powerpc/sse2-movsd-2.c: Likewise.
	* gcc.target/powerpc/sse2-movsd-3.c: Likewise.
	* gcc.target/powerpc/sse2-mulpd-1.c: Likewise.
	* gcc.target/powerpc/sse2-mulsd-1.c: Likewise.
	* gcc.target/powerpc/sse2-orpd-1.c: Likewise.
	* gcc.target/powerpc/sse2-packssdw-1.c: Likewise.
	* gcc.target/powerpc/sse2-packsswb-1.c: Likewise.
	* gcc.target/powerpc/sse2-packuswb-1.c: Likewise.
	* gcc.target/powerpc/sse2-paddb-1.c: Likewise.
	* gcc.target/powerpc/sse2-paddd-1.c: Likewise.
	* gcc.target/powerpc/sse2-paddq-1.c: Likewise.
	* gcc.target/powerpc/sse2-paddsb-1.c: Likewise.
	* gcc.target/powerpc/sse2-paddsw-1.c: Likewise.
	* gcc.target/powerpc/sse2-paddusb-1.c: Likewise.
	* gcc.target/powerpc/sse2-paddusw-1.c: Likewise.
	* gcc.target/powerpc/sse2-paddw-1.c: Likewise.
	* gcc.target/powerpc/sse2-pand-1.c: Likewise.
	* gcc.target/powerpc/sse2-pandn-1.c: Likewise.
	* gcc.target/powerpc/sse2-pavgb-1.c: Likewise.
	* gcc.target/powerpc/sse2-pavgw-1.c: Likewise.
	* gcc.target/powerpc/sse2-pcmpeqb-1.c: Likewise.
	* gcc.target/powerpc/sse2-pcmpeqd-1.c: Likewise.
	* gcc.target/powerpc/sse2-pcmpeqw-1.c: Likewise.
	* gcc.target/powerpc/sse2-pcmpgtb-1.c: Likewise.
	* gcc.target/powerpc/sse2-pcmpgtd-1.c: Likewise.
	* gcc.target/powerpc/sse2-pcmpgtw-1.c: Likewise.
	* gcc.target/powerpc/sse2-pextrw.c: Likewise.
	* gcc.target/powerpc/sse2-pinsrw.c: Likewise.
	* gcc.target/powerpc/sse2-pmaddwd-1.c: Likewise.
	* gcc.target/powerpc/sse2-pmaxsw-1.c: Likewise.
	* gcc.target/powerpc/sse2-pmaxub-1.c: Likewise.
	* gcc.target/powerpc/sse2-pminsw-1.c: Likewise.
	* gcc.target/powerpc/sse2-pminub-1.c: Likewise.
	* gcc.target/powerpc/sse2-pmovmskb-1.c: Likewise.
	* gcc.target/powerpc/sse2-pmulhuw-1.c: Likewise.
	* gcc.target/powerpc/sse2-pmulhw-1.c: Likewise.
	* gcc.target/powerpc/sse2-pmullw-1.c: Likewise.
	* gcc.target/powerpc/sse2-pmuludq-1.c: Likewise.
	* gcc.target/powerpc/sse2-por-1.c: Likewise.
	* gcc.target/powerpc/sse2-psadbw-1.c: Likewise.
	* gcc.target/powerpc/sse2-pshufd-1.c: Likewise.
	* gcc.target/powerpc/sse2-pshufhw-1.c: Likewise.
	* gcc.target/powerpc/sse2-pshuflw-1.c: Likewise.
	* gcc.target/powerpc/sse2-pslld-1.c: Likewise.
	* gcc.target/powerpc/sse2-pslld-2.c: Likewise.
	* gcc.target/powerpc/sse2-pslldq-1.c: Likewise.
	* gcc.target/powerpc/sse2-psllq-1.c: Likewise.
	* gcc.target/powerpc/sse2-psllq-2.c: Likewise.
	* gcc.target/powerpc/sse2-psllw-1.c: Likewise.
	* gcc.target/powerpc/sse2-psllw-2.c: Likewise.
	* gcc.target/powerpc/sse2-psrad-1.c: Likewise.
	* gcc.target/powerpc/sse2-psrad-2.c: Likewise.
	* gcc.target/powerpc/sse2-psraw-1.c: Likewise.
	* gcc.target/powerpc/sse2-psraw-2.c: Likewise.
	* gcc.target/powerpc/sse2-psrld-1.c: Likewise.
	* gcc.target/powerpc/sse2-psrld-2.c: Likewise.
	* gcc.target/powerpc/sse2-psrldq-1.c: Likewise.
	* gcc.target/powerpc/sse2-psrlq-1.c: Likewise.
	* gcc.target/powerpc/sse2-psrlq-2.c: Likewise.
	* gcc.target/powerpc/sse2-psrlw-1.c: Likewise.
	* gcc.target/powerpc/sse2-psrlw-2.c: Likewise.
	* gcc.target/powerpc/sse2-psubb-1.c: Likewise.
	* gcc.target/powerpc/sse2-psubd-1.c: Likewise.
	* gcc.target/powerpc/sse2-psubq-1.c: Likewise.
	* gcc.target/powerpc/sse2-psubsb-1.c: Likewise.
	* gcc.target/powerpc/sse2-psubsw-1.c: Likewise.
	* gcc.target/powerpc/sse2-psubusb-1.c: Likewise.
	* gcc.target/powerpc/sse2-psubusw-1.c: Likewise.
	* gcc.target/powerpc/sse2-psubw-1.c: Likewise.
	* gcc.target/powerpc/sse2-punpckhbw-1.c: Likewise.
	* gcc.target/powerpc/sse2-punpckhdq-1.c: Likewise.
	* gcc.target/powerpc/sse2-punpckhqdq-1.c: Likewise.
	* gcc.target/powerpc/sse2-punpckhwd-1.c: Likewise.
	* gcc.target/powerpc/sse2-punpcklbw-1.c: Likewise.
	* gcc.target/powerpc/sse2-punpckldq-1.c: Likewise.
	* gcc.target/powerpc/sse2-punpcklqdq-1.c: Likewise.
	* gcc.target/powerpc/sse2-punpcklwd-1.c: Likewise.
	* gcc.target/powerpc/sse2-pxor-1.c: Likewise.
	* gcc.target/powerpc/sse2-shufpd-1.c: Likewise.
	* gcc.target/powerpc/sse2-sqrtpd-1.c: Likewise.
	* gcc.target/powerpc/sse2-subpd-1.c: Likewise.
	* gcc.target/powerpc/sse2-subsd-1.c: Likewise.
	* gcc.target/powerpc/sse2-ucomisd-1.c: Likewise.
	* gcc.target/powerpc/sse2-ucomisd-2.c: Likewise.
	* gcc.target/powerpc/sse2-ucomisd-3.c: Likewise.
	* gcc.target/powerpc/sse2-ucomisd-4.c: Likewise.
	* gcc.target/powerpc/sse2-ucomisd-5.c: Likewise.
	* gcc.target/powerpc/sse2-ucomisd-6.c: Likewise.
	* gcc.target/powerpc/sse2-unpckhpd-1.c: Likewise.
	* gcc.target/powerpc/sse2-unpcklpd-1.c: Likewise.
	* gcc.target/powerpc/sse2-xorpd-1.c: Likewise.
	* gcc.target/powerpc/sse3-addsubpd.c: Likewise.
	* gcc.target/powerpc/sse3-addsubps.c: Likewise.
	* gcc.target/powerpc/sse3-haddpd.c: Likewise.
	* gcc.target/powerpc/sse3-haddps.c: Likewise.
	* gcc.target/powerpc/sse3-hsubpd.c: Likewise.
	* gcc.target/powerpc/sse3-hsubps.c: Likewise.
	* gcc.target/powerpc/sse3-lddqu.c: Likewise.
	* gcc.target/powerpc/sse3-movddup.c: Likewise.
	* gcc.target/powerpc/sse3-movshdup.c: Likewise.
	* gcc.target/powerpc/sse3-movsldup.c: Likewise.
	* gcc.target/powerpc/mmx-packuswb-1.c: Likewise. Also, add
	ommitted "-mpower8-vector" to dg-options.

From-SVN: r265537
2018-10-26 17:33:24 +00:00
Paul A. Clarke
dbafa0f51f [rs6000] x86 vector intrinsics compatibility: clean-ups for 32bit support
Implement various corrections in the compatibility implementations of the
x86 vector intrinsics found after enabling 32bit mode for the associated
test cases.  (Actual enablement coming in a subsequent patch.)

2018-10-26  Paul A. Clarke  <pc@us.ibm.com>

gcc/ChangeLog:

	* config/rs6000/mmintrin.h: Enable 32bit compilation.
	* config/rs6000/xmmintrin.h: Likewise.

From-SVN: r265535
2018-10-26 17:23:46 +00:00
Ian Lance Taylor
dbd93b9dbb libgo: avoid use of 'local' directive in shell script
Avoid declaring shell variables with 'local' (not supported
    on all systems of interest).
    
    Reviewed-on: https://go-review.googlesource.com/c/145021

From-SVN: r265534
2018-10-26 16:58:13 +00:00
Ian Lance Taylor
797ea25427 libgo: fix improperly mangled linker symbol directive
Fix asm name directive for the C version of log/syslog.syslog_c,
    which didn't get included in the recent name mangling change.
    
    Reviewed-on: https://go-review.googlesource.com/c/145017

From-SVN: r265533
2018-10-26 16:53:24 +00:00
Paul A. Clarke
4fa008a718 [rs6000] Fix _mm_extract_pi16 for big-endian
For compatibility implementation of x86 vector intrinsic, _mm_extract_pi16,
adjust shift value for big-endian mode.

gcc/ChangeLog:

2018-10-25  Paul A. Clarke  <pc@us.ibm.com>

	* config/rs6000/xmmintrin.h (_mm_extract_pi16): Fix for big-endian.

From-SVN: r265531
2018-10-26 15:01:22 +00:00
Richard Biener
4bfcf87914 tree-vect-slp.c (vect_mark_slp_stmts): Add visited hash_set and wrapper.
2018-10-26  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (vect_mark_slp_stmts): Add visited hash_set
	and wrapper.
	(vect_mark_slp_stmts_relevant): Likewise.
	(vect_detect_hybrid_slp_stmts): Likewise.
	(vect_bb_slp_scalar_cost): Likewise.
	(vect_remove_slp_scalar_calls): Likewise.

From-SVN: r265528
2018-10-26 11:52:10 +00:00
Jakub Jelinek
6d2027241f update_version_svn (IGNORE_BRANCHES): Add gcc-6-branch.
* update_version_svn (IGNORE_BRANCHES): Add gcc-6-branch.
	* crontab: Remove gcc-6-branch entry.

From-SVN: r265527
2018-10-26 12:29:15 +02:00
Jakub Jelinek
9038a1de78 gcc_release (error, inform): Use $@ instead of $1.
* gcc_release (error, inform): Use $@ instead of $1.
	(build_sources): Check for ^[[:blank:]]*GCC in both index.html
	and changes.html, rather than for GCC in one and ^GCC in another one.

From-SVN: r265526
2018-10-26 12:26:17 +02:00
Jan Hubicka
abb967da1c ipa-devirt.c (odr_subtypes_equivalent_p): Fix recursion.
* ipa-devirt.c (odr_subtypes_equivalent_p): Fix recursion.
	(warn_types_mismatch): Fix walk of DECL_NAME.
	(odr_types_equivalent_p): Fix overactive assert.
	* lto/lto-symtab.c (lto_symtab_merge_decls_2): Fix extra space.

	* g++.dg/lto/odr-1_0.C: Fix template.
	* g++.dg/lto/odr-1_1.C: Fix template.

From-SVN: r265523
2018-10-26 09:32:47 +00:00
Richard Biener
a1f072e244 re PR tree-optimization/87105 (Autovectorization [X86, SSE2, AVX2, DoublePrecision])
2018-10-26  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/87105
	* tree-vectorizer.h (_slp_tree::refcnt): New member.
	* tree-vect-slp.c (vect_free_slp_tree): Decrement and honor
	refcnt.
	(vect_create_new_slp_node): Initialize refcnt to one.
	(bst_traits): Move.
	(scalar_stmts_set_t, bst_fail): Remove.
	(vect_build_slp_tree_2): Add bst_map argument and adjust calls.
	(vect_build_slp_tree): Add bst_map argument and lookup
	already created SLP nodes.
	(vect_print_slp_tree): Handle a SLP graph, print SLP node
	addresses.
	(vect_slp_rearrange_stmts): Handle a SLP graph.
	(vect_analyze_slp_instance): Adjust and free SLP nodes from
	the CSE map.  Fix indenting.
	(vect_schedule_slp_instance): Add short-cut.

	* g++.dg/vect/slp-pr87105.cc: Adjust.
	* gcc.dg/torture/20181024-1.c: New testcase.
	* g++.dg/opt/20181025-1.C: Likewise.

From-SVN: r265522
2018-10-26 07:38:59 +00:00
Martin Liska
74ca1c01d0 Relax hash function to match equals function behavior (PR testsuite/86158).
2018-10-26  Martin Liska  <mliska@suse.cz>

	PR testsuite/86158
	* ipa-prop.c (struct ipa_vr_ggc_hash_traits): Hash with
	addr_expr and not with pointers.

From-SVN: r265521
2018-10-26 07:23:33 +00:00
Jan Hubicka
b322cdb21a * tree.c (free_lang_data_in_type): Only check main variants.
From-SVN: r265520
2018-10-26 07:21:04 +00:00
Jan Hubicka
420672bc92 ipa-devirt.c (warn_odr): Make static.
* ipa-devirt.c (warn_odr): Make static.
	(types_same_for_odr): Drop strict variant.
	(types_odr_comparable): Likewise.
	(odr_or_derived_type_p): Look for main variants.
	(odr_name_hasher::equal): Cleanup comment.
	(odr_subtypes_equivalent): Add warn and warned arguments; check main
	variants.
	(type_variants_equivalent_p): break out from ...
	(odr_types_equivalent): ... here; go for main variants where needed.
	(warn_odr): ... here; turn static.
	(warn_types_mismatch): Compare mangled names of main variants.
	* ipa-utils.h (types_odr_comparable): Drop strict parameter.
	(type_with_linkage_p): Sanity check that we look at main variant.
	* lto.c (lto_read_decls): Only consider main variant to be ODR type.
	* tree.h (types_same_for_odr): Drop strict argument.

From-SVN: r265519
2018-10-26 07:20:01 +00:00
Richard Biener
99976e2700 re PR lto/87754 (ICE in odr_types_equivalent_p, at ipa-devirt.c:1250)
2018-10-26  Richard Biener  <rguenther@suse.de>

	PR testsuite/87754
	* g++.dg/lto/odr-1_0.C: Fix pattern.

From-SVN: r265518
2018-10-26 07:19:07 +00:00
Richard Biener
7ea4b8ed7b re PR tree-optimization/87746 (ICE in vect_update_misalignment_for_peel, at tree-vect-data-refs.c:1035)
2018-10-26  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/87746
	* tree-vect-data-refs.c (vect_update_misalignment_for_peel):
	Simplify and fix WRT strided store groups with size not
	equal to step in element count.
	(vect_analyze_group_access_1): Dump the whole group.

	* gcc.dg/pr87746.c: New testcase.

From-SVN: r265517
2018-10-26 07:12:02 +00:00
Rainer Orth
682f212a90 Don't xfail gcc.dg/pr78973-2.c on non-ilp64 targets
* gcc.dg/pr78973-2.c: Remove xfail on dg-warning.

From-SVN: r265516
2018-10-26 06:46:26 +00:00
Ian Lance Taylor
c404b3b9c6 libgo: don't use wc in gotest
The wc command is not in the GNU approved list of Makefile utilities
    (https://www.gnu.org/prep/standards/html_node/Utilities-in-Makefiles.html#Utilities-in-Makefiles).
    
    Reviewed-on: https://go-review.googlesource.com/c/144897

From-SVN: r265515
2018-10-26 02:43:35 +00:00
GCC Administrator
03f7544f8d Daily bump.
From-SVN: r265514
2018-10-26 00:17:05 +00:00
Ian Lance Taylor
34489eb2af compiler: improve name mangling for packpaths
The current implementation of Gogo::pkgpath_for_symbol was written in
    a way that allowed two distinct package paths to map to the same
    symbol, which could cause collisions at link- time or compile-time.
    
    Switch to a better mangling scheme to insure that we get a unique
    packagepath symbol for each package. In the new scheme instead of having
    separate mangling schemes for identifiers and package paths, the
    main identifier mangler ("go_encode_id") now handles mangling of
    both packagepath characters and identifier characters.
    
    The new mangling scheme is more intrusive: "foo/bar.Baz" is mangled as
    "foo..z2fbar.Baz" instead of "foo_bar.Baz". To mitigate this, this
    patch also adds a demangling capability so that function names
    returned from runtime.CallersFrames are converted back to their
    original unmangled form.
    
    Changing the pkgpath_for_symbol scheme requires updating a number of
    //go:linkname directives and C "__asm__" directives to match the new
    scheme, as well as updating the 'gotest' driver (which makes
    assumptions about the correct mapping from pkgpath symbol to package
    name).
    
    Fixes golang/go#27534.
    
    Reviewed-on: https://go-review.googlesource.com/c/135455

From-SVN: r265510
2018-10-25 22:18:08 +00:00
Carl Love
fc756f9f46 rs6000-c.c (P9V_BUILTIN_VEC_VSCEDPGT, [...]): Rename base overloaded name.
gcc/ChangeLog:

2018-10-25  Carl Love  <cel@us.ibm.com>

	* config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_VSCEDPGT,
	P9V_BUILTIN_VEC_VSCEDPLT, P9V_BUILTIN_VEC_VSCEDPEQ,
	P9V_BUILTIN_VEC_VSCEDPUO): Rename base overloaded name.  Add quad
	precicion entry for each overloaded builtin.
	* config/rs6000/rs6000-builtin.def (VSCEDPGT, VSCEDPLT, VSCEDPEQ,
	VSCEDPUO): Rename overloaded name.
	(VSCEDPGT, VSCEQPGT, VSCEDPLT, VSCEQPLT, VSCEDPEQ, VSCEQPEQ,
	VSCEDPUO, VSCEQPUO): Add defitions for overloaded builtins.
	* config/rs6000/vsx.md (xscmpexpqp_<code>_<mode>): Add
	define_expand for xscmpexqp instruction.
	(*xscmpexpqp): Add define_insn for the xscmpexqp instruction.

gcc/testsuite/ChangeLog:

2018-10-25  Carl Love  <cel@us.ibm.com>

	* gcc.target/powerpc/float128-cmp2-runnable.c: New test file.

From-SVN: r265509
2018-10-25 20:41:57 +00:00
Bill Schmidt
80a2dd51de emmintrin.h (_mm_slli_epi16): Replace deprecated function with vec_sl.
2018-10-25  Bill Schmidt  <wschmidt@linux.ibm.com>
	    Jinsong Ji <jji@us.ibm.com>

	* config/rs6000/emmintrin.h (_mm_slli_epi16): Replace deprecated
	function with vec_sl.
	(_mm_slli_epi32): Likewise.
	(_mm_slli_epi64): Likewise.
	(_mm_srai_epi16): Replace deprecated function with vec_sra.
	(_mm_srai_epi32): Likewise.
	(_mm_srli_epi16): Replace deprecated function with vec_sr.
	(_mm_srli_epi32): Likewise.
	(_mm_srli_epi64): Likewise.
	(_mm_sll_epi16): Replace deprecated function with vec_sl.
	(_mm_sll_epi32): Likewise.
	(_mm_sll_epi64): Likewise.
	(_mm_sra_epi16): Replace deprecated function with vec_sra.
	(_mm_sra_epi32): Likewise.
	(_mm_srl_epi16): Replace deprecated function with vec_sr.
	(_mm_srl_epi32): Likewise.
	(_mm_srl_epi64): Likewise.


Co-Authored-By: Jinsong Ji <jji@us.ibm.com>

From-SVN: r265508
2018-10-25 20:16:39 +00:00
Bill Schmidt
1d3d27032b emmintrin.h (_mm_sll_epi16): Replace comparison operators with vec_cmp* for compatibility due to unfortunate...
2018-10-25  Bill Schmidt  <wschmidt@linux.ibm.com>
	    Jinsong Ji <jji@us.ibm.com>

	* gcc/config/rs6000/emmintrin.h (_mm_sll_epi16): Replace
	comparison operators with vec_cmp* for compatibility due to
	unfortunate history; clean up formatting and use types more
	appropriately.
	(_mm_sll_epi32): Likewise.
	(_mm_sll_epi64): Likewise.
	(_mm_srl_epi16): Likewise.
	(_mm_srl_epi32): Likewise.
	(_mm_srl_epi64): Likewise.


Co-Authored-By: Jinsong Ji <jji@us.ibm.com>

From-SVN: r265507
2018-10-25 20:14:40 +00:00
Bill Schmidt
71c3949eea emmintrin.h (_mm_sll_epi64): Remove wrong cast.
2018-10-25  Bill Schmidt  <wschmidt@linux.ibm.com>
	    Jinsong Ji <jji@us.ibm.com>

	* config/rs6000/emmintrin.h (_mm_sll_epi64): Remove wrong cast.
	* config/rs6000/xmmintrin.h (_mm_min_ps): Change m's type to
	__vector __bool int.  Use vec_cmpgt in preference to deprecated
	function vec_vcmpgtfp.
	(_mm_max_ps): Likewise.


Co-Authored-By: Jinsong Ji <jji@us.ibm.com>

From-SVN: r265506
2018-10-25 20:09:24 +00:00
Jeff Law
7959b94e08 rl78.c (insn_ok_now): Always re-recognize the insn if returning false.
* config/rl78/rl78.c (insn_ok_now): Always re-recognize the insn
	if returning false.

From-SVN: r265505
2018-10-25 13:35:52 -06:00
Jason Merrill
b15e280216 * parser.c (cp_parser_sizeof_operand): Remove redundant grokdeclarator.
From-SVN: r265503
2018-10-25 15:23:33 -04:00
Martin Sebor
8145e6a0cc extend.texi (aligned): Expand attribute description.
gcc/ChangeLog:

	* doc/extend.texi (aligned): Expand attribute description.
	(Alignment): Rename section.  Discuss function arguments.

From-SVN: r265498
2018-10-25 10:34:36 -06:00
Martin Liska
30e874615f Use signed char in a test (PR testsuite/87739).
2018-10-25  Martin Liska  <mliska@suse.cz>

	PR testsuite/87739
	* gcc.dg/tree-ssa/pr84436-5.c (foo): Use signed char.

From-SVN: r265495
2018-10-25 15:36:48 +00:00
Martin Liska
3239d72683 Revert partially changes from r265454 (PR other/87735).
2018-10-25  Martin Liska  <mliska@suse.cz>

	PR other/87735
	* gcc.dg/tree-prof/time-profiler-1.c: Revert.
	* gcc.dg/tree-prof/time-profiler-2.c: Likewise.
	* gcc.dg/tree-prof/time-profiler-3.c: Likewise.
2018-10-25  Martin Liska  <mliska@suse.cz>

	PR other/87735
	* libgcov-profiler.c: Revert.

From-SVN: r265494
2018-10-25 15:36:12 +00:00
Jonathan Wakely
71e093897c PR libstdc++/87749 fix (and optimize) string move construction
The move constructor for the SSO string uses assign(const basic_string&)
when either:

(1) the source string is "local" and so the contents of the small string
buffer need to be copied, or

(2) the allocator does not propagate and is_always_equal is false.

Case (1) is suboptimal, because the assign member is not noexcept and
the compiler isn't smart enough to see it won't actually throw in this
case. This causes extra code in the move assignment operator so that any
exception will be turned into a call to std::terminate. This can be
fixed by copying small strings inline instead of calling assign.

Case (2) is a bug, because the specific instances of the allocators
could be equal even if is_always_equal is false. This can result in an
unnecessary deep copy (and potentially-throwing allocation) when the
storage should be moved. This can be fixed by simply checking if the
allocators are equal.

	PR libstdc++/87749
	* include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
	(basic_string::operator=(basic_string&&)): For short strings copy the
	buffer inline. Only fall back to using assign(const basic_string&) to
	do a deep copy when reallocation is needed.
	* testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc:
	New test.
	* testsuite/21_strings/basic_string/modifiers/assign/char/
	move_assign_optim.cc: New test.
	* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc:
	New test.
	* testsuite/21_strings/basic_string/modifiers/assign/wchar_t/
	move_assign_optim.cc: New test.

From-SVN: r265493
2018-10-25 16:34:04 +01:00
Jan Hubicka
1afca3f426 ipa-devirt.c (main_odr_variant): Remove.
* ipa-devirt.c (main_odr_variant): Remove.
	(hash_odr_name, types_same_for_odr, types_odr_comparable,
	odr_name_hasher::equal, odr_subtypes_equivalent_p):
	Drop use of main_odr_variant.
	(add_type_duplicate): Silence confused warnings on integer types.
	(get_odr_type): Always look for main variant.
	(register_odr_type): Simplify.

From-SVN: r265492
2018-10-25 14:33:27 +00:00
Richard Biener
303d8f7792 tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Initialize ng to silence error with release checking bootstrap.
2018-10-25  Richard Biener  <rguenther@suse.de>

	* tree-vect-data-refs.c (vect_analyze_data_ref_accesses):
	Initialize ng to silence error with release checking bootstrap.

From-SVN: r265491
2018-10-25 14:28:18 +00:00
Ilya Leoshkevich
b6f517556c S/390: Merge movdi_larl into movdi_64
Consider the following RTL:

(insn (set (mem/f/c:DI (reg/f:DI 60))
           (const:DI (plus:DI (symbol_ref:DI ("*.LANCHOR0"))
                              (const_int 8)))))

generated by cse2 pass.  It is matched to movdi_64, resulting in
the following inefficient code:

	larl	%r5,.L6			# Load literal pool@
	lg	%r1,.L7-.L6(%r5)	# Load .LANCHOR0+8
	stgrl	%r1,.LANCHOR0
	br	%r14

Matching it to movdi_larl improves the code, eliminating one
instruction and the literal pool entry:

	larl	%r1,.LANCHOR0+8
	stgrl	%r1,.LANCHOR0
	br	%r14

Taking it one step further, there is no reason to keep movdi_64 and
movdi_larl separate, since this could potentially improve code in other
ways by giving lra one more alternative to choose from.

gcc/ChangeLog:

2018-10-25  Ilya Leoshkevich  <iii@linux.ibm.com>

	* config/s390/constraints.md (ZL): New constraint.
	* config/s390/s390.c (legitimate_pic_operand_p): Accept LARL
	operands.
	* config/s390/s390.md (movdi_larl): Remove.
	(movdi_64): Add the LARL alternative.

gcc/testsuite/ChangeLog:

2018-10-25  Ilya Leoshkevich  <iii@linux.ibm.com>

	* gcc.target/s390/global-array-almost-huge-element.c: New test.
	* gcc.target/s390/global-array-almost-negative-huge-element.c: New test.
	* gcc.target/s390/global-array-element-pic.c: New test.
	* gcc.target/s390/global-array-even-element.c: New test.
	* gcc.target/s390/global-array-huge-element.c: New test.
	* gcc.target/s390/global-array-negative-huge-element.c: New test.
	* gcc.target/s390/global-array-odd-element.c: New test.

From-SVN: r265490
2018-10-25 14:23:31 +00:00