2017-06-15 TCWG Automation Make Linaro GCC Snapshot 6.3-2017.06. gcc/ * LINARO-VERSION: Update. 2017-06-13 Yvan Roux Merge branches/gcc-6-branch rev 249140. 2017-05-17 TCWG Automation gcc/ * LINARO-VERSION: Bump version number, post snapshot. 2017-05-17 TCWG Automation Make Linaro GCC Snapshot 6.3-2017.05. gcc/ * LINARO-VERSION: Update. 2017-05-12 Yvan Roux Merge branches/gcc-6-branch rev 247789. 2017-05-09 Yvan Roux gcc/ Backport from trunk r247640. 2017-05-05 Andre Vieira Prakhar Bahuguna PR target/71607 * config/arm/arm.md (use_literal_pool): Remove. (64-bit immediate split): No longer takes cost into consideration if arm_disable_literal_pool is enabled. * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is used when arm_disable_literal_pool is enabled. (arm_max_const_double_inline_cost): Remove use of arm_disable_literal_pool. (push_minipool_fix): Add assert. (arm_reorg): Add return if arm_disable_literal_pool is enabled. * config/arm/vfp.md (no_literal_pool_df_immediate): New. (no_literal_pool_sf_immediate): New. gcc/testsuite/ Backport from trunk r247640. 2017-05-05 Andre Vieira Thomas Preud'homme Prakhar Bahuguna PR target/71607 * gcc.target/arm/thumb2-slow-flash-data.c: Renamed to ... * gcc.target/arm/thumb2-slow-flash-data-1.c: ... this. * gcc.target/arm/thumb2-slow-flash-data-2.c: New. * gcc.target/arm/thumb2-slow-flash-data-3.c: New. * gcc.target/arm/thumb2-slow-flash-data-4.c: New. * gcc.target/arm/thumb2-slow-flash-data-5.c: New. * gcc.target/arm/tls-disable-literal-pool.c: New. 2017-05-09 Yvan Roux gcc/ Backport from trunk r240379. 2016-09-22 Andre Vieira Terry Guo * target.def (elf_flags_numeric): New target hook. * targhooks.h (default_asm_elf_flags_numeric): New. * varasm.c (default_asm_elf_flags_numeric): New. (default_elf_asm_named_section): Use new target hook. * config/arm/arm.opt (mpure-code): New. * config/arm/arm.h (SECTION_ARM_PURECODE): New. * config/arm/arm.c (arm_asm_init_sections): Add section attribute to default text section if -mpure-code. (arm_option_check_internal): Diagnose use of option with non supported targets and/or options. (arm_asm_elf_flags_numeric): New. (arm_function_section): New. (arm_elf_section_type_flags): New. * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Disable for -mpure-code. * gcc/doc/texi (TARGET_ASM_ELF_FLAGS_NUMERIC): New. * gcc/doc/texi.in (TARGET_ASM_ELF_FLAGS_NUMERIC): Likewise. gcc/testsuite/ Backport from trunk r240379, r240746. 2016-09-22 Andre Vieira Terry Guo * gcc.target/arm/pure-code/ffunction-sections.c: New. * gcc.target/arm/pure-code/no-literal-pool.c: New. * gcc.target/arm/pure-code/pure-code.exp: New. gcc/ Backport from trunk r240389. 2016-09-23 Richard Biener * hooks.h (hook_uint_uintp_false): Declare. gcc/ Backport from trunk r240417. 2016-09-23 Uros Bizjak Jakub Jelinek * hooks.h (hook_uint_uintp_false): Rename to... (hook_bool_uint_uintp_false): ... this. * hooks.c (hook_uint_uintp_false): Rename to... (hook_bool_uint_uintp_false): ... this. * target.def (elf_flags_numeric): Use hook_bool_uint_uintp_false instead of hook_uint_uintp_false. gcc/ Backport from trunk r240490. 2016-09-26 Andre Vieira * target.def(elf_flags_numeric): Change documentation to present tense. * doc/tm.texi: Regenerate. gcc/testsuite/ Backport from trunk r241396. 2016-10-21 Andre Vieira * gcc.target/arm/pure-code/pure-code.exp: Require arm_cortex_m effective target. gcc/testsuite/ Backport from trunk r241466. 2016-10-24 Andre Vieira * gcc.target/arm/pure-code/pure-code.exp: Restore saved globals. gcc/ Backport from trunk r243240. 2016-12-025 Andre Vieira * config/arm/arm.c (TARGET_ASM_INIT_SECTIONS): Fix wrong undef location. gcc/ Backport from trunk r247585. 2017-05-04 Prakhar Bahuguna Andre Simoes Dias Vieira * config/arm/arm.md (movsi): Change TARGET_32BIT to TARGET_HAVE_MOVT. (movt splitter): Likewise. * config/arm/arm.c (arm_option_check_internal): Change arm_arch_thumb2 to TARGET_HAVE_MOVT, and merge with -mslow-flash-data check. (const_ok_for_arm): Change else to else if (TARGET_THUMB2) and add else block for Thumb-1 with MOVT. (thumb2_legitimate_address_p): Move code block ... (can_avoid_literal_pool_for_label_p): ... into this new function. (thumb1_legitimate_address_p): Add check for TARGET_HAVE_MOVT and literal pool. (thumb_legitimate_constant_p): Add conditional on TARGET_HAVE_MOVT * doc/invoke.texi (-mpure-code): Change "ARMv7-M targets" for "M-profile targets with the MOVT instruction". gcc/testsuite/ Backport from trunk r247585. 2017-05-04 Prakhar Bahuguna Andre Simoes Dias Vieira * gcc.target/arm/pure-code/pure-code.exp: Add conditional for check_effective_target_arm_thumb1_movt_ok. 2017-05-09 Yvan Roux gcc/ Backport from trunk r247631. 2017-05-05 Wilco Dijkstra * config/arm/aarch-common.c (arm_early_load_addr_dep_ptr): New function. (arm_early_store_addr_dep_ptr): Likewise. * config/arm/aarch-common-protos.h (arm_early_load_addr_dep_ptr): Add prototype. (arm_early_store_addr_dep_ptr): Likewise. * config/arm/cortex-a53.md: Add new bypasses. 2017-05-09 Yvan Roux gcc/ Backport from trunk r247122. 2017-04-25 Julian Brown Naveen H.S * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set): Fix type for 1-element load. 2017-04-21 Christophe Lyon gcc/ Backport from trunk r247015. 2017-04-20 Thomas Preud'homme * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default priority .init_array and .fini_array section with SECTION_NOTYPE flag. 2017-04-12 Yvan Roux gcc/ * LINARO-VERSION: Bump version number, post snapshot. 2017-04-12 Yvan Roux Make Linaro GCC Snapshot 6.3-2017.04. gcc/ * LINARO-VERSION: Update. 2017-04-11 Christophe Lyon gcc/ Backport from trunk r246760. 2017-04-07 Martin Liska PR target/79889 * config/aarch64/aarch64.c (aarch64_process_target_attr): Show error message instead of an ICE. gcc/testsuite/ Backport from trunk r246760. 2017-04-07 Martin Liska PR target/79889 * g++.dg/ext/mv8.C: Add aarch64* targets. 2017-04-07 Christophe Lyon gcc/ Backport from trunk r246682. 2017-04-04 Thomas Preud'homme PR target/80307 * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32 instructions for small multiply cores. gcc/testsuite/ Backport from trunk r246682. 2017-04-04 Thomas Preud'homme PR target/80307 * gcc.target/arm/small-multiply-m0-1.c: Do not skip test if not targeting any CPU or architecture. * gcc.target/arm/small-multiply-m0-2.c: Likewise. * gcc.target/arm/small-multiply-m0-3.c: Likewise. * gcc.target/arm/small-multiply-m0plus-1.c: Likewise. * gcc.target/arm/small-multiply-m0plus-2.c: Likewise. * gcc.target/arm/small-multiply-m0plus-3.c: Likewise. * gcc.target/arm/small-multiply-m1-1.c: Likewise. * gcc.target/arm/small-multiply-m1-2.c: Likewise. * gcc.target/arm/small-multiply-m1-3.c: Likewise. 2017-04-04 Yvan Roux Merge branches/gcc-6-branch rev 246668. 2017-04-04 Yvan Roux gcc/ Backport from trunk r245999. 2017-03-09 Kyrylo Tkachov PR target/79913 * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator. (VALL_NO_V2Q): Likewise. (VDQF_DF): Delete. * config/aarch64/aarch64-simd.md (aarch64_dup_lane_): Use VALL_F16_NO_V2Q iterator. (*aarch64_simd_vec_copy_lane_): Use VALL_NO_V2Q mode iterator. (*aarch64_vgetfmulx): Use VDQF iterator. 2017-04-04 Christophe Lyon gcc/ Backport from trunk r246189. 2017-03-16 Kyrylo Tkachov * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF. * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup): Use h_con constraint for operand 1. (*aarch64_fnma4_elt_from_dup): Likewise. (*aarch64_mulx_elt_from_dup): Likewise for operand 2. 2017-04-04 Yvan Roux gcc/ Backport from trunk r246084. 2017-03-13 Kyrylo Tkachov PR target/79911 * config/arm/neon.md (vec_sel_widen_ssum_lo3): Rename to... (vec_sel_widen_ssum_lo3): ... This. Avoid mismatch between vec_select and vector argument. (vec_sel_widen_ssum_hi3): Rename to... (vec_sel_widen_ssum_hi3): ... This. Likewise. (vec_sel_widen_usum_lo3): Rename to... (vec_sel_widen_usum_lo3): ... This. (vec_sel_widen_usum_hi3): Rename to... (vec_sel_widen_usum_hi3): ... This. 2017-04-04 Christophe Lyon gcc/ Backport from trunk r246419. 2017-03-23 Kyrylo Tkachov PR target/71436 * config/arm/arm.md (*load_multiple): Add reload_completed to matching condition. gcc/testsuite/ Backport from trunk r246419. 2017-03-23 Kyrylo Tkachov PR target/71436 * gcc.c-torture/compile/pr71436.c: New test. 2017-04-04 Christophe Lyon gcc/ Backport from trunk r246397. 2017-03-22 Wilco Dijkstra * config/aarch64/aarch64.c (generic_branch_cost): Copycortexa57_branch_cost. 2017-04-04 Christophe Lyon gcc/ Backport from trunk r246395. 2017-03-22 Wilco Dijkstra * config/aarch64/aarch64.c (generic_tunings): Add AES fusion. 2017-04-04 Christophe Lyon libcpp/ Backport from trunk r246312. 2017-03-21 Andreas Schwab * lex.c (search_line_fast) [__ARM_NEON && __ARM_64BIT_STATE]: Convert 64-bit value to boolean before passing to __builtin_expect. 2017-04-04 Christophe Lyon gcc/ Backport from trunk r246229. 2017-03-17 Richard Earnshaw PR target/80052 * aarch64.opt(verbose-cost-dump): Fix typo. 2017-04-04 Christophe Lyon gcc/ Backport from trunk r246190. 2017-03-16 Tamar Christina * config/aarch64/aarch64-simd.md (*aarch64_simd_mov) Change ins into fmov. 2017-04-04 Christophe Lyon gcc/ Backport from trunk r245029. 2017-01-30 Richard Earnshaw PR target/79260 * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to tm_p_file. * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h. 2017-04-04 Yvan Roux gcc/ Backport from trunk r246066. 2017-03-10 David Malcolm PR target/79925 * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the full command-line argument, rather than just "str". (aarch64_validate_march): Likewise. (aarch64_validate_mtune): Likewise. 2017-04-04 Yvan Roux gcc/ Backport from trunk r245877. 2017-03-03 Kyrylo Tkachov * config/aarch64/aarch64.c (aarch64_float_const_representable_p): Use wide_int::ulow () instead of .elt (0). 2017-04-04 Yvan Roux gcc/ Backport from trunk r245328. 2017-02-10 Christophe Lyon * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm. (vtst_p16): Likewise. (vtstq_p8): Likewise. (vtstq_p16): Likewise. (vtst_p64): New. (vtstq_p64): Likewise. * config/arm/arm_neon.h (vgetq_lane_p64): New. (vset_lane_p64): New. (vsetq_lane_p64): New. gcc/testsuite/ Backport from trunk r245328. 2017-02-10 Christophe Lyon * gcc.target/aarch64/advsimd-intrinsics/p64_p128.c (vget_lane_expected, vset_lane_expected, vtst_expected_poly64x1): New. (vmov_n_expected0, vmov_n_expected1, vmov_n_expected2) (expected_vld_st2_0, expected_vld_st2_1, expected_vld_st3_0) (expected_vld_st3_1, expected_vld_st3_2, expected_vld_st4_0) (expected_vld_st4_1, expected_vld_st4_2, expected_vld_st4_3) (vtst_expected_poly64x2): Move to aarch64-only section. (vget_lane_p64, vgetq_lane_p64, vset_lane_p64, vsetq_lane_p64) (vtst_p64, vtstq_p64): New tests. 2017-03-17 Yvan Roux gcc/ Backport from trunk r245101. 2017-02-01 Andrew Pinski * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass stmt_info to record_stmt_cost. (vect_get_known_peeling_cost): Pass stmt_info if known to record_stmt_cost. * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split cpu_vector_cost field into scalar_int_stmt_cost and scalar_fp_stmt_cost. Split vec_stmt_cost field into vec_int_stmt_cost and vec_fp_stmt_cost. * config/aarch64/aarch64.c (generic_vector_cost): Update for the splitting of scalar_stmt_cost and vec_stmt_cost. (thunderx_vector_cost): Likewise. (cortexa57_vector_cost): LIkewise. (exynosm1_vector_cost): Likewise. (xgene1_vector_cost): Likewise. (thunderx2t99_vector_cost): Improve after the splitting of the two fields. (aarch64_builtin_vectorization_cost): Update for the splitting of scalar_stmt_cost and vec_stmt_cost. 2017-03-16 Yvan Roux gcc/ * LINARO-VERSION: Bump version number, post snapshot. 2017-03-16 Yvan Roux Make Linaro GCC Snapshot 6.3-2017.03. gcc/ * LINARO-VERSION: Update. 2017-03-15 Yvan Roux Merge branches/gcc-6-branch rev 246148. 2017-03-15 Yvan Roux gcc/ Backport from trunk r242669. 2016-11-21 Richard Earnshaw * arm.opt (mapcs-float): Delete option. * arm.c (arm_option_override): Remove hunk relating to TARGET_APCS_FLOAT. * doc/invoke.texi (arm options): Remove documentation for -mapcs-float. 2017-03-15 Yvan Roux gcc/ Backport from trunk r242551. 2016-11-17 Kyrylo Tkachov * config/aarch64/aarch64.md (mov): Call aarch64_split_dimode_const_store on DImode constant stores. * config/aarch64/aarch64-protos.h (aarch64_split_dimode_const_store): New prototype. * config/aarch64/aarch64.c (aarch64_split_dimode_const_store): New function. gcc/testsuite/ Backport from trunk r242551. 2016-11-17 Kyrylo Tkachov * gcc.target/aarch64/store_repeating_constant_1.c: New test. * gcc.target/aarch64/store_repeating_constant_2.c: Likewise. 2017-03-15 Yvan Roux gcc/ Backport from trunk r242539. 2016-11-17 Kyrylo Tkachov * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): Check for const_double code before calling aarch64_float_const_zero_rtx_p. 2017-03-15 Yvan Roux gcc/ Backport from trunk r243333. 2016-12-07 Naveen H.S * config/aarch64/aarch64.c (aarch64_builtin_support_vector_misalignment): New. (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT): Define. gcc/testsuite/ Backport from trunk r243333. 2016-12-07 Naveen H.S * gcc.target/aarch64/pr71727.c : New Testcase. 2017-03-15 Yvan Roux libcpp/ Backport from trunk r241964. 2016-11-08 Richard Earnshaw * lex.c (search_line_fast): New implementation for AArch64. 2017-03-14 Yvan Roux gcc/ Backport from trunk r245388. 2016-02-13 Kyrylo Tkachov * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead of explicit '@'. Add missing assembly comment marker on branch costs printout. 2017-03-14 Yvan Roux gcc/ Backport from trunk r245030. 2017-01-30 Martin Liska PR bootstrap/78985 * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze): Initialize variables with NULL value. 2017-03-14 Yvan Roux gcc/ Backport from trunk r241248. 2016-10-17 Kyrylo Tkachov * config/aarch64/aarch64.c: Delete inclusion of cortex-a57-fma-steering.h. (aarch64_override_options): Delete call to aarch64_register_fma_steering. * config/aarch64/aarch64-protos.h (make_pass_fma_steering): Declare. * config/aarch64/cortex-a57-fma-steering.h: Delete. * config/aarch64/aarch64-passes.def: New file. * config/aarch64/cortex-a57-fma-steering.c (aarch64_register_fma_steering): Delete definition. (make_pass_fma_steering): Remove static qualifier. * config/aarch64/t-aarch64 (PASSES_EXTRA): New directive. (cortex-a57-fma-steering.o): Remove dependency on cortex-a57-fma-steering.h. 2017-03-14 Yvan Roux libgcc/ Backport from trunk r245508. 2017-02-16 Andrew Pinski * config/aarch64/value-unwind.h: New file. * config.host (aarch64*-*-*): Add aarch64/value-unwind.h to tm_file. 2017-03-14 Yvan Roux gcc/ Backport from trunk r242491. 2016-11-16 Richard Earnshaw * arm/arm-fpus.def (vfpv2): New FPU, currently an alias for 'vfp'. (neon-vfpv3): New FPU, currently an alias for 'neon'. * arm/arm-tables.opt: Regenerated. * arm/t-aprofile (MULTILIB_REUSE): Add reuse rules for vfpv2 and neon-vfpv3. * doc/invoke.texi (ARM: -mfpu): Document new options. Note that 'vfp' and 'neon' are aliases for specific implementations. 2017-03-14 Yvan Roux gcc/testsuite/ Backport from trunk r244372. 2017-01-12 Kyrylo Tkachov PR tree-optimization/78319 * gcc.dg/uninit-pred-8_a.c: Add -mtune=cortex-a15 for arm. Remove xfail. 2017-03-14 Yvan Roux gcc/ Backport from trunk r243541. 2016-12-12 Thomas Preud'homme * config/arm/arm-opts.h: Move struct arm_arch_core_flag and arm_arch_core_flags to ... * common/config/arm/arm-common.c: There. 2017-03-14 Yvan Roux gcc/ Backport from trunk r245267. 2017-02-07 Andrew Pinski * config/aarch64/aarch64.md (popcount2): New pattern. gcc/testsuite/ Backport from trunk r245267. 2017-02-07 Andrew Pinski * gcc.target/aarch64/popcount.c : New Testcase. 2017-03-14 Yvan Roux gcc/testsuite/ Backport from trunk r245132. 2017-02-02 Tamar Christina PR middle-end/78142 * gcc.target/aarch64/vector_initialization_nostack.c (f12): Use one vector 2017-03-14 Yvan Roux gcc/testsuite/ Backport from trunk r244723. 2017-01-20 Thomas Preud'homme * lib/target-supports.exp (check_configured_with): New procedure. (check_effective_target_default_mode): new effective target. * gcc.target/arm/optional_thumb-1.c: Skip if GCC was configured with a default mode. Fix dg-skip-if target selector syntax. * gcc.target/arm/optional_thumb-2.c: Likewise. * gcc.target/arm/optional_thumb-3.c: Fix dg-skip-if target selector syntax. 2017-03-14 Yvan Roux gcc/ Backport from trunk r244663. 2017-01-19 Jiong Wang * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a". * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3, AARCH64_ISA_V8_3, TARGET_ARMV8_3): New. * doc/invoke.texi (AArch64 Options): Document "armv8.3-a". 2017-03-14 Yvan Roux gcc/testsuite/ Backport from trunk r243858. 2016-12-21 Andre Vieira * gcc.target/arm/unsigned-extend-2.c: Update testcase. 2017-03-14 Yvan Roux gcc/ Backport from trunk r243427. 2016-12-08 Andrew Pinski * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Access the lower part of RTX appropriately. gcc/testsuite/ Backport from trunk r243427. 2016-12-08 Andrew Pinski * gcc.target/aarch64/pr71112.c : New Testcase. 2017-03-14 Yvan Roux gcc/ Backport from trunk r243428. 2016-12-08 Naveen H.S * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle SYMBOL_SMALL_TLSGD for ILP32. * config/aarch64/aarch64.md : tlsgd_small modified into tlsgd_small_ to support SImode and DImode. *tlsgd_small modified into *tlsgd_small_ to support SImode and DImode. gcc/testsuite/ Backport from trunk r243428. 2016-12-08 Naveen H.S * gcc.target/aarch64/pr78382.c : New Testcase. 2017-03-03 Yvan Roux gcc/ Backport from trunk r242531. 2016-11-16 Andrew PInski * config/aarch64/aarch64.opt (mverbose-cost-dump): New option. * config/aarch64/aarch64.c (aarch64_rtx_costs): Use flag_aarch64_verbose_cost instead of checking for details dump. (aarch64_rtx_costs_wrapper): Likewise. 2017-02-10 Yvan Roux gcc/ * LINARO-VERSION: Bump version number, post snapshot. 2017-02-10 Yvan Roux Make Linaro GCC Snapshot 6.3-2017.02. gcc/ * LINARO-VERSION: Update. 2017-02-06 Yvan Roux Merge branches/gcc-6-branch rev 245201. 2017-01-31 Christophe Lyon gcc/testsuite/ Backport from trunk r244891. 2016-01-25 Kyrylo Tkachov * gcc.dg/lto/pr54709_0.c: Require 'shared' effective target. * gcc.dg/lto/pr61526_0.c: Likewise. * gcc.dg/lto/pr64415_0.c: Likewise. 2017-01-31 Christophe Lyon gcc/ Backport from trunk r244894. 2016-01-25 Kyrylo Tkachov PR target/79145 * config/arm/arm.md (xordi3): Force constant operand into a register for TARGET_IWMMXT. gcc/testsuite/ Backport from trunk r244894. 2016-01-25 Kyrylo Tkachov PR target/79145 * gcc.target/arm/pr79145.c: New test. 2017-01-31 Christophe Lyon gcc/ Backport from trunk r244879. 2017-01-24 Eric Botcazou PR target/77439 * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction for long calls with APCS frame and VFP. gcc/testsuite/ Backport from trunk r244879. 2017-01-24 Eric Botcazou * gcc.target/arm/vfp-longcall-apcs.c: New test. 2017-01-30 Christophe Lyon gcc/ Backport from trunk r244828. 2017-01-23 Andreas Tobler * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase size of buf. (aarch64_elf_asm_destructor): Likewise. 2017-01-30 Christophe Lyon gcc/testsuite/ Backport from trunk r244772. 2017-01-23 Christophe Lyon * gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h (CHECK_POLY): New. (CHECK_RESULTS_NAMED_NO_FP16): Call CHECK_POLY instead of CHECK for poly*_t types. * gcc.target/aarch64/advsimd-intrinsics/vcnt.c (FNNAME): Likewise. * gcc.target/aarch64/advsimd-intrinsics/vcombine.c (void exec_vcombine): Likewise. * gcc.target/aarch64/advsimd-intrinsics/vcreate.c (FNNAME): Likewise. * gcc.target/aarch64/advsimd-intrinsics/vget_high.c (void exec_vget_high): Likewise. * gcc.target/aarch64/advsimd-intrinsics/vget_low.c (void exec_vget_low): Likewise. * gcc.target/aarch64/advsimd-intrinsics/vldX.c (void exec_vldX): Likewise. * gcc.target/aarch64/advsimd-intrinsics/vldX_dup.c (void exec_vldX_dup): Likewise. * gcc.target/aarch64/advsimd-intrinsics/vldX_lane.c (void exec_vldX_lane): Likewise. * gcc.target/aarch64/advsimd-intrinsics/vmul.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vmvn.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vqtbX.c (void exec_vqtbX): Likewise. * gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p128.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vrev.c (void exec_vrev): Likewise. * gcc.target/aarch64/advsimd-intrinsics/vsXi_n.inc: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vshuffle.inc: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vsli_n.c (void vsli_extra): Likewise. * gcc.target/aarch64/advsimd-intrinsics/vsri_n.c (void vsri_extra): Likewise. * gcc.target/aarch64/advsimd-intrinsics/vstX_lane.c (void exec_vstX_lane): Likewise. * gcc.target/aarch64/advsimd-intrinsics/vtbX.c (void exec_vtbX): Likewise. * gcc.target/aarch64/advsimd-intrinsics/p64_p128.c (int main): Likewise. (TEST_VGET_LANE): Cast to uint to avoid warning. * gcc.target/aarch64/advsimd-intrinsics/unary_sat_op.inc (void FNNAME): Fix PRIx format for int16_t, int32_t, uint16_t, uint32_t. * gcc.target/aarch64/advsimd-intrinsics/vfms_vfma_n.c (void exec_vfma_vfms_n): Fix PRIx format for float64_t. * gcc.target/aarch64/advsimd-intrinsics/vmovn.c (void exec_vmovn): Fix PRIx format for int8_t, int16_t, uint8_t, uint16_t. * gcc.target/aarch64/advsimd-intrinsics/vmul_lane.c (void exec_vmul_lane): Fix PRIx format for int16_t, uint16_t. * gcc.target/aarch64/advsimd-intrinsics/vmul_n.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vmull.c (void exec_vmull): Fix PRIx format for int16_t, int64_t, uint16_t, uint64_t. Call CHECK_POLY instead of CHECK for poly64_t types. * gcc.target/aarch64/advsimd-intrinsics/vmull_lane.c (void exec_vmull_lane): Fix PRIx format for int64_t, uint64_t. * gcc.target/aarch64/advsimd-intrinsics/vpXXX.inc: Fix PRIx format for int8_t, int16_t, uint8_t, uint16_t. * gcc.target/aarch64/advsimd-intrinsics/vqabs.c (void vqabs_extra): Fix PRIx format for int16_t, int32_t, uint16_t, uint32_t. * gcc.target/aarch64/advsimd-intrinsics/vqdmull.c: Fix PRIx format for int32_t, int64_t. * gcc.target/aarch64/advsimd-intrinsics/vqneg.c (void vqneg_extra): Fix PRIx format for int16_t, int32_t. * gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p64.c (TEST_VREINTERPRET_TO_POLY): New. (main): Call TEST_VREINTERPRET_TO_POLY instead of TEST_VREINTERPRET where needed. 2017-01-30 Christophe Lyon gcc/ Backport from trunk r241965. 2016-11-08 Kyrylo Tkachov * config/arm/arm.c (arm_slowmul_tune): Use generic_extra_costs. (arm_fastmul_tune): Likewise. (arm_strongarm_tune): Likewise. (arm_xscale_tune): Likewise. (arm_9e_tune): Likewise. (arm_marvell_pj4_tune): Likewise. (arm_v6t2_tune): Likewise. (arm_v6m_tune): Likewise. (arm_fa726te_tune): Likewise. gcc/ Backport from trunk r241966. 2016-11-08 Kyrylo Tkachov * config/arm/arm.opt (mold-rtx-costs): Delete. (mnew-generic-costs): Delete. * config/arm/arm-protos.h (struct tune_params): Delete rtx_costs field. * config/arm/arm.c (arm_rtx_costs_1): Delete. (arm_size_rtx_costs): Likewise. (arm_slowmul_rtx_costs): Likewise. (arm_fastmul_rtx_costs): Likewise. (arm_xscale_rtx_costs): Likewise. (arm_9e_rtx_costs): Likewise. (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune, arm_marvell_pj4_tune, arm_cortex_a35_tune, arm_exynosm1_tune, arm_cortex_a73_tune, arm_cortex_m7_tune): Delete rtx_costs field. (arm_new_rtx_costs): Rename to... (arm_rtx_costs_internal): ... This. (arm_rtx_costs): Remove old way of doing rtx costs. 2017-01-30 Christophe Lyon gcc/ Backport from trunk r244643. 2016-01-19 Kyrylo Tkachov * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads): Delete. * config/aarch64/aarch64.md (aarch64_reload_movcp): Delete reference to aarch64_nopcrelative_literal_loads. (aarch64_reload_movcp): Likewise. 2017-01-30 Christophe Lyon gcc/ Backport from trunk r244716. 2017-01-20 Kyrylo Tkachov PR target/71270 * config/arm/arm.c (neon_valid_immediate): Reject vector constants in big-endian mode when they are not a single duplicated value. 2017-01-30 Christophe Lyon gcc/ Backport from trunk r244613. 2017-01-19 Richard Earnshaw PR rtl-optimization/79121 * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness of the inner type when shifting an extended value. gcc/testsuite/ Backport from trunk r244613. 2017-01-19 Richard Earnshaw PR rtl-optimization/79121 * gcc.c-torture/execute/pr79121.c: New test. 2017-01-30 Christophe Lyon gcc/ Backport from trunk r243820. 2016-12-20 Kyrylo Tkachov PR target/78694 * config/arm/arm.c (dump_minipool): Copy mp->value before emitting it in the minipool to avoid invalid RTL sharing. gcc/testsuite/ Backport from trunk r243820. 2016-12-20 Kyrylo Tkachov PR target/78694 * gcc.c-torture/compile/pr78694.c: New test. 2017-01-30 Christophe Lyon gcc/ Backport from trunk r244586. 2017-01-18 Wilco Dijkstra * config/aarch64/aarch64.c (aarch64_sched_adjust_priority) New function. (TARGET_SCHED_ADJUST_PRIORITY): Define target hook. 2017-01-30 Christophe Lyon gcc/ Backport from trunk r243755. 2016-12-16 Kyrylo Tkachov * config/aarch64/aarch64.md: New define_split above insv. gcc/testsuite/ Backport from trunk r243755. 2016-12-16 Kyrylo Tkachov * gcc.target/aarch64/ubfx_lsr_1.c: New test. gcc/ Backport from trunk r243756. 2016-12-16 Kyrylo Tkachov * config/aarch64/aarch64.md: New define_split above bswap2. gcc/testsuite/ Backport from trunk r243756. 2016-12-16 Kyrylo Tkachov * gcc.target/aarch64/ubfiz_lsl_1.c: New test. 2017-01-30 Christophe Lyon gcc/ Backport from trunk r243744. 2016-12-16 Wilco Dijkstra * config/arm/arm.c (thumb_core_reg_alloc_order): Swap R12 and R14. 2017-01-30 Christophe Lyon gcc/ Backport from trunk r243745. 2016-12-16 Wilco Dijkstra * config/arm/arm.md (subsi3_carryin): Add Thumb-2 RSC #0. (arm_negdi2) Rename to negdi2_insn, allow on Thumb-2. * config/arm/thumb2.md (thumb2_negdi2): Remove pattern. 2017-01-30 Christophe Lyon gcc/ Backport from trunk r243011. 2016-11-30 Kyrylo Tkachov PR target/78362 * config/aarch64/aarch64.md (add3): Extract inner expression from a subreg in operands[1] and don't call REGNO on a non-reg expression when deciding to force operands[2] into a reg. gcc/testsuite/ Backport from trunk r243011. 2016-11-30 Kyrylo Tkachov PR target/78362 * gcc.c-torture/compile/pr78362.c: New test. 2017-01-30 Christophe Lyon gcc/testsuite/ Backport from trunk r242821. 2016-11-23 Naveen H.S * gcc.target/aarch64/fmaxmin.c : Add -fno-vect-cost-model. * gcc.target/aarch64/fmul_fcvt_2.c : Likewise. * gcc.target/aarch64/vect-abs-compile.c : Likewise. * gcc.target/aarch64/vect-clz.c : Likewise. * gcc.target/aarch64/vect-fcm-eq-d.c : Likewise. * gcc.target/aarch64/vect-fcm-ge-d.c : Likewise. * gcc.target/aarch64/vect-fcm-gt-d.c : Likewise. * gcc.target/aarch64/vect-fmovd-zero.c : Likewise. * gcc.target/aarch64/vect-fmovd.c : Likewise. * gcc.target/aarch64/vect-fmovf-zero.c : Likewise. * gcc.target/aarch64/vect-fmovf.c : Likewise. * gcc.target/aarch64/vect_ctz_1.c : Likewise. gcc/testsuite/ Backport from trunk r242827. 2016-11-23 Naveen H.S * gcc.target/aarch64/ldp_stp_1.c : Add -mcpu=generic. * gcc.target/aarch64/store-pair-1.c : Likewise. 2017-01-30 Christophe Lyon gcc/ Backport from trunk r242471. 2016-11-16 Kyrylo Tkachov PR target/78364 * config/arm/arm.md (*extv_reg): Restrict operands 2 and 3 to the proper ranges for an SBFX instruction. (extzv_t2): Likewise for UBFX. 2017-01-30 Christophe Lyon gcc/ Backport from trunk r242384. 2016-11-14 Wilco Dijkstra * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_3) Use bfx attribute. (aarch64_lshr_sisd_or_int_3): Likewise. (aarch64_ashr_sisd_or_int_3): Likewise. (si3_insn_uxtw): Likewise. (3_insn): Likewise. (_ashl): Likewise. (zero_extend_lshr): Likewise. (extend_ashr): Likewise. (): Likewise. (insv): Likewise. (andim_ashift_bfiz): Likewise. * config/aarch64/thunderx.md (thunderx_shift): Add bfx. * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise. * config/arm/cortex-a57.md (cortex_a57_alu): Add bfx. * config/arm/exynos-m1.md (exynos_m1_alu): Add bfx. (exynos_m1_alu_p): Likewise. * config/arm/types.md: Add bfx. * config/arm/xgene1.md (xgene1_bfm): Add bfx. gcc/ Backport from trunk r242385. 2016-11-14 Wilco Dijkstra * config/arm/cortex-a57.md (cortex_a57_alu): Move extend here, bfm... (cortex_a57_alu_shift): ...here. 2017-01-30 Christophe Lyon gcc/ Backport from trunk r242383. 2016-11-14 Wilco Dijkstra * config/aarch64/aarch64.c (cortexa57_vector_cost): Change vec_stmt_cost, vec_align_load_cost and vec_unalign_load_cost. 2017-01-30 Christophe Lyon libgcc/ Backport from trunk r238215. 2016-07-11 Hale Wang Andre Vieira * config/arm/lib1funcs.S: Add new wrapper. 2017-01-30 Christophe Lyon gcc/ Backport from trunk r244322. 2017-01-11 Wilco Dijkstra * config/arm/cortex-a53.md: Add bypasses for cortex_a53_r2f_cvt. (cortex_a53_r2f): Only use for transfers. (cortex_a53_f2r): Likewise. (cortex_a53_r2f_cvt): Add reservation for conversions. (cortex_a53_f2r_cvt): Likewise. 2017-01-30 Christophe Lyon gcc/ Backport from trunk r244321. 2017-01-11 Tamar Christina * config/arm/arm_neon.h: Add __artificial__ and gnu_inline to all inlined functions, change static to extern. 2017-01-30 Christophe Lyon gcc/ Backport from trunk r244320. 2017-01-11 Christophe Lyon PR target/78253 * config/arm/arm.c (legitimize_pic_address): Handle reference to weak symbol. (arm_assemble_integer): Likewise. 2017-01-11 Yvan Roux gcc/ * LINARO-VERSION: Bump version number, post snapshot. 2017-01-11 Yvan Roux Make Linaro GCC Snapshot 6.3-2017.01. gcc/ * LINARO-VERSION: Update. 2017-01-11 Christophe Lyon gcc/ Backport from trunk r240504. 2016-09-26 Thomas Preud'homme * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed, is_mm_consume, is_mm_acquire, is_mm_release, is_mm_acq_rel, is_mm_seq_cst, is_mm_sync): Move to ... * memmodel.h: This. New file. * builtins.c: Include memmodel.h. * optabs.c: Likewise. * tsan.c: Likewise. * config/aarch64/aarch64.c: Likewise. * config/alpha/alpha.c: Likewise. * config/arm/arm.c: Likewise. * config/i386/i386.c: Likewise. * config/ia64/ia64.c: Likewise. * config/mips/mips.c: Likewise. * config/rs6000/rs6000.c: Likewise. * config/sparc/sparc.c: Likewise. * genconditions.c: Include memmodel.h in generated file. * genemit.c: Likewise. * genoutput.c: Likewise. * genpeep.c: Likewise. * genpreds.c: Likewise. * genrecog.c: Likewise. gcc/c-family/ Backport from trunk r240504. 2016-09-26 Thomas Preud'homme * c-common.c: Include memmodel.h. gcc/ Backport from trunk r241507. 2016-10-25 Thomas Preud'homme * config/arm/constraints.md (Q constraint): Document its use for Thumb-1. (Pf constraint): New constraint for relaxed, consume or relaxed memory models. * config/arm/sync.md (atomic_load): Add new ARMv8-M Baseline only alternatives to allow any register when memory model matches Pf and thus lda is used, but only low registers otherwise. Use unpredicated output template for Thumb-1 targets. (atomic_store): Likewise for stl. (arm_load_exclusive): Add new ARMv8-M Baseline only alternative whose output template does not have predication. (arm_load_acquire_exclusive): Likewise. (arm_load_exclusivesi): Likewise. (arm_load_acquire_exclusivesi): Likewise. (arm_store_release_exclusive): Likewise. (arm_store_exclusive): Use unpredicated output template for Thumb-1 targets. gcc/ Backport from trunk r241577. 2016-10-26 Thomas Preud'homme * config/arm/arm.c (arm_expand_compare_and_swap): Add new bdst local variable. Add the new parameter to the insn generator. Set that parameter to be CC flag for 32-bit targets, bval otherwise. Set the return value from the negation of that parameter for Thumb-1, keeping the logic unchanged otherwise except for using bdst as the destination register of the compare_and_swap insn. (arm_split_compare_and_swap): Add explanation about how is the value returned to the function comment. Rename scratch variable to neg_bval. Adapt initialization of variables holding operands to the new operand numbers. Use return register to hold result of store exclusive for Thumb-1, scratch register otherwise. Construct the appropriate cbranch for Thumb-1 targets, keeping the logic unchanged for 32-bit targets. Guard Z flag setting to restrict to 32bit targets. Use gen_cbranchsi4 rather than hand-written conditional branch to loop for strongly ordered compare_and_swap. * config/arm/predicates.md (cc_register_operand): New predicate. * config/arm/sync.md (atomic_compare_and_swap_1): Use a match_operand with the new predicate to accept either the CC flag or a destination register for the boolean return value, restricting it to CC flag only via constraint. Adapt operand numbers accordingly. gcc/ Backport from trunk r241578. 2016-10-26 Thomas Preud'homme * config/arm/sync.md (atomic_compare_and_swap_1): Add new ARMv8-M Baseline only alternatives to (i) hold store atomic success value in a return register rather than a scratch register, (ii) use a low register for it and to (iii) ensure the cbranchsi insn generated by the split respect the constraints of Thumb-1 cbranchsi4_insn and cbranchsi4_scratch. * config/arm/thumb1.md (cbranchsi4_insn): Add comment to indicate constraints must match those in atomic_compare_and_swap. (cbranchsi4_scratch): Likewise. gcc/ Backport from trunk r241614. 2016-10-27 Thomas Preud'homme * config/arm/arm.c (arm_split_atomic_op): Add function comment. Add logic to to decide whether to copy over old value to register for new value. * config/arm/sync.md: Add comments explaning why mode and code attribute are not defined in iterators.md (thumb1_atomic_op_str): New code attribute. (thumb1_atomic_newop_str): Likewise. (thumb1_atomic_fetch_op_str): Likewise. (thumb1_atomic_fetch_newop_str): Likewise. (thumb1_atomic_fetch_oldop_str): Likewise. (atomic_exchange): Add new ARMv8-M Baseline only alternatives to mirror the more restrictive constraints of the Thumb-1 insns after split compared to Thumb-2 counterpart insns. (atomic_): Likewise. Add comment to keep constraints in sync with non atomic version. (atomic_nand): Likewise. (atomic_fetch_): Likewise. (atomic_fetch_nand): Likewise. (atomic__fetch): Likewise. (atomic_nand_fetch): Likewise. * config/arm/thumb1.md (thumb1_addsi3): Add comment to keep contraint in sync with atomic version. (thumb1_subsi3_insn): Likewise. (thumb1_andsi3_insn): Likewise. (thumb1_iorsi3_insn): Likewise. (thumb1_xorsi3_insn): Likewise. gcc/ Backport from trunk r241615. 2016-10-27 Thomas Preud'homme * config/arm/arm.h (TARGET_HAVE_LDREX): Define for ARMv8-M Baseline. (TARGET_HAVE_LDREXBH): Likewise. (TARGET_HAVE_LDACQ): Likewise. gcc/testsuite/ Backport from trunk r241615. 2016-10-27 Thomas Preud'homme * gcc.target/arm/atomic-comp-swap-release-acquire-3.c: New test. * gcc.target/arm/atomic-op-acq_rel-3.c: Likewise. * gcc.target/arm/atomic-op-acquire-3.c: Likewise. * gcc.target/arm/atomic-op-char-3.c: Likewise. * gcc.target/arm/atomic-op-consume-3.c: Likewise. * gcc.target/arm/atomic-op-int-3.c: Likewise. * gcc.target/arm/atomic-op-relaxed-3.c: Likewise. * gcc.target/arm/atomic-op-release-3.c: Likewise. * gcc.target/arm/atomic-op-seq_cst-3.c: Likewise. * gcc.target/arm/atomic-op-short-3.c: Likewise. gcc/ Backport from trunk r241848. 2016-11-04 Thomas Preud'homme * config/arm/arm-arches.def (armv8-m.base): Set Cortex-M23 as representative core for this architecture. * config/arm/arm-cores.def (cortex-m23): Define new processor. * config/arm/arm-tables.opt: Regenerate. * config/arm/arm-tune.md: Likewise. * config/arm/arm.c (arm_v6m_tune): Add Cortex-M23 to the list of cores this tuning parameters apply to in the comment. * config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex-M23 to the list of valid -mcpu options. * doc/invoke.texi (ARM Options): Document new Cortex-M23 processor. gcc/ Backport from trunk r241849. 2016-11-04 Thomas Preud'homme * config/arm/arm-arches.def (armv8-m.main+dsp): Set Cortex-M33 as representative core for this architecture. * config/arm/arm-cores.def (cortex-m33): Define new processor. * config/arm/arm-tables.opt: Regenerate. * config/arm/arm-tune.md: Likewise. * config/arm/bpabi.h (BE8_LINK_SPEC): Add Cortex-M33 to the list of valid -mcpu options. * doc/invoke.texi (ARM Options): Document new Cortex-M33 processor. gcc/ Backport from trunk r242596. 2016-11-18 Thomas Preud'homme * config/arm/arm-protos.h (FL_NONE, FL_ANY, FL_CO_PROC, FL_ARCH3M, FL_MODE26, FL_MODE32, FL_ARCH4, FL_ARCH5, FL_THUMB, FL_LDSCHED, FL_STRONG, FL_ARCH5E, FL_XSCALE, FL_ARCH6, FL_VFPV2, FL_WBUF, FL_ARCH6K, FL_THUMB2, FL_NOTM, FL_THUMB_DIV, FL_VFPV3, FL_NEON, FL_ARCH7EM, FL_ARCH7, FL_ARM_DIV, FL_ARCH8, FL_CRC32, FL_SMALLMUL, FL_NO_VOLATILE_CE, FL_IWMMXT, FL_IWMMXT2, FL_ARCH6KZ, FL2_ARCH8_1, FL2_ARCH8_2, FL2_FP16INST): Reindent comment, add final dot when missing and make value unsigned. (arm_feature_set): Use unsigned entries instead of unsigned long. gcc/ Backport from trunk r242597. 2016-11-18 Terry Guo Thomas Preud'homme * common/config/arm/arm-common.c (arm_target_thumb_only): New function. * config/arm/arm-opts.h: Include arm-flags.h. (struct arm_arch_core_flag): Define. (arm_arch_core_flags): Define. * config/arm/arm-protos.h: Include arm-flags.h (FL_NONE, FL_ANY, FL_CO_PROC, FL_ARCH3M, FL_MODE26, FL_MODE32, FL_ARCH4, FL_ARCH5, FL_THUMB, FL_LDSCHED, FL_STRONG, FL_ARCH5E, FL_XSCALE, FL_ARCH6, FL_VFPV2, FL_WBUF, FL_ARCH6K, FL_THUMB2, FL_NOTM, FL_THUMB_DIV, FL_VFPV3, FL_NEON, FL_ARCH7EM, FL_ARCH7, FL_ARM_DIV, FL_ARCH8, FL_CRC32, FL_SMALLMUL, FL_NO_VOLATILE_CE, FL_IWMMXT, FL_IWMMXT2, FL_ARCH6KZ, FL2_ARCH8_1, FL2_ARCH8_2, FL2_FP16INST, FL_TUNE, FL_FOR_ARCH2, FL_FOR_ARCH3, FL_FOR_ARCH3M, FL_FOR_ARCH4, FL_FOR_ARCH4T, FL_FOR_ARCH5, FL_FOR_ARCH5T, FL_FOR_ARCH5E, FL_FOR_ARCH5TE, FL_FOR_ARCH5TEJ, FL_FOR_ARCH6, FL_FOR_ARCH6J, FL_FOR_ARCH6K, FL_FOR_ARCH6Z, FL_FOR_ARCH6ZK, FL_FOR_ARCH6KZ, FL_FOR_ARCH6T2, FL_FOR_ARCH6M, FL_FOR_ARCH7, FL_FOR_ARCH7A, FL_FOR_ARCH7VE, FL_FOR_ARCH7R, FL_FOR_ARCH7M, FL_FOR_ARCH7EM, FL_FOR_ARCH8A, FL2_FOR_ARCH8_1A, FL2_FOR_ARCH8_2A, FL_FOR_ARCH8M_BASE, FL_FOR_ARCH8M_MAIN, arm_feature_set, ARM_FSET_MAKE, ARM_FSET_MAKE_CPU1, ARM_FSET_MAKE_CPU2, ARM_FSET_CPU1, ARM_FSET_CPU2, ARM_FSET_EMPTY, ARM_FSET_ANY, ARM_FSET_HAS_CPU1, ARM_FSET_HAS_CPU2, ARM_FSET_HAS_CPU, ARM_FSET_ADD_CPU1, ARM_FSET_ADD_CPU2, ARM_FSET_DEL_CPU1, ARM_FSET_DEL_CPU2, ARM_FSET_UNION, ARM_FSET_INTER, ARM_FSET_XOR, ARM_FSET_EXCLUDE, ARM_FSET_IS_EMPTY, ARM_FSET_CPU_SUBSET): Move to ... * config/arm/arm-flags.h: This new file. * config/arm/arm.h (TARGET_MODE_SPEC_FUNCTIONS): Define. (EXTRA_SPEC_FUNCTIONS): Add TARGET_MODE_SPEC_FUNCTIONS to its value. (TARGET_MODE_SPECS): Define. (DRIVER_SELF_SPECS): Add TARGET_MODE_SPECS to its value. gcc/testsuite/ Backport from trunk r242597. 2016-11-18 Thomas Preud'homme * gcc.target/arm/optional_thumb-1.c: New test. * gcc.target/arm/optional_thumb-2.c: New test. * gcc.target/arm/optional_thumb-3.c: New test. gcc/ Backport from trunk r242696. 2016-11-22 Thomas Preud'homme * config.gcc: Allow new rmprofile value for configure option --with-multilib-list. * config/arm/t-rmprofile: New file. * doc/install.texi (--with-multilib-list): Document new rmprofile value for ARM. gcc/testsuite/ Backport from trunk r243013. 2016-11-30 Thomas Preud'homme * lib/target-supports.exp (add_options_for_arm_arch_v6m): Add -mfloat-abi=soft option. (add_options_for_arm_arch_v8m_base): Likewise. Reindent containing foreach loop. gcc/ Backport from trunk r243015. 2016-11-30 Thomas Preud'homme * config/arm/t-rmprofile: Add mappings for Cortex-M23 and Cortex-M33. gcc/ Backport from trunk r243187. 2016-12-02 Andre Vieira Thomas Preud'homme * config.gcc (extra_headers): Added arm_cmse.h. * config/arm/arm-arches.def (ARM_ARCH): (armv8-m): Add FL2_CMSE. (armv8-m.main): Likewise. (armv8-m.main+dsp): Likewise. * config/arm/arm-c.c (arm_cpu_builtins): Added __ARM_FEATURE_CMSE macro. * config/arm/arm-flags.h: Define FL2_CMSE. * config/arm.c (arm_arch_cmse): New. (arm_option_override): New error for unsupported cmse target. * config/arm/arm.h (arm_arch_cmse): New. * config/arm/arm.opt (mcmse): New. * config/arm/arm_cmse.h: New file. * doc/invoke.texi (ARM Options): Add -mcmse. * doc/sourcebuild.texi (arm_cmse_ok): Add new effective target. * doc/extend.texi: Add ARMv8-M Security Extensions entry. gcc/testsuite/ Backport from trunk r243187. 2016-12-02 Andre Vieira Thomas Preud'homme * gcc.target/arm/cmse/cmse.exp: New. * gcc.target/arm/cmse/cmse-1.c: New. * gcc.target/arm/cmse/cmse-12.c: New. * lib/target-supports.exp (check_effective_target_arm_cmse_ok): New. libgcc/ Backport from trunk r243187. 2016-12-02 Andre Vieira Thomas Preud'homme * config/arm/t-arm (HAVE_CMSE): New. * config/arm/cmse.c: New. gcc/ Backport from trunk r243188. 2016-12-02 Andre Vieira Thomas Preud'homme * config/arm/arm.c (arm_handle_cmse_nonsecure_entry): New. (arm_attribute_table): Added cmse_nonsecure_entry (arm_compute_func_type): Handle cmse_nonsecure_entry. (cmse_func_args_or_return_in_stack): New. (arm_handle_cmse_nonsecure_entry): New. * config/arm/arm.h (ARM_FT_CMSE_ENTRY): New macro define. (IS_CMSE_ENTRY): Likewise. * doc/extend.texi (ARM ARMv8-M Security Extensions): New attribute. gcc/testsuite/ Backport from trunk r243188. 2016-12-02 Andre Vieira Thomas Preud'homme * gcc.target/arm/cmse/cmse-3.c: New. gcc/ Backport from trunk r243189. 2016-12-02 Andre Vieira Thomas Preud'homme * config/arm/arm.c (use_return_insn): Change to return with bxns when cmse_nonsecure_entry. (output_return_instruction): Likewise. (arm_output_function_prologue): Likewise. (thumb_pop): Likewise. (thumb_exit): Likewise. (thumb2_expand_return): Assert that entry functions always have simple returns. (arm_expand_epilogue): Handle entry functions. (arm_function_ok_for_sibcall): Disable sibcall for entry functions. (arm_asm_declare_function_name): New. * config/arm/arm-protos.h (arm_asm_declare_function_name): New. * config/arm/elf.h (ASM_DECLARE_FUNCTION_NAME): Redefine to use arm_asm_declare_function_name. gcc/testsuite/ Backport from trunk r243189. 2016-12-02 Andre Vieira Thomas Preud'homme * gcc.target/arm/cmse/cmse-4.c: New. * gcc.target/arm/cmse/cmse-9.c: New. * gcc.target/arm/cmse/cmse-10.c: New. gcc/ Backport from trunk r243190. 2016-12-02 Andre Vieira Thomas Preud'homme * config/arm/arm.c (output_return_instruction): Clear registers. (thumb2_expand_return): Likewise. (thumb1_expand_epilogue): Likewise. (thumb_exit): Likewise. (arm_expand_epilogue): Likewise. (cmse_nonsecure_entry_clear_before_return): New. (comp_not_to_clear_mask_str_un): New. (compute_not_to_clear_mask): New. * config/arm/thumb1.md (*epilogue_insns): Change length attribute. * config/arm/thumb2.md (*thumb2_return): Disable for cmse_nonsecure_entry functions. (*thumb2_cmse_entry_return): Duplicate thumb2_return pattern for cmse_nonsecure_entry functions. gcc/testsuite/ Backport from trunk r243190. 2016-12-02 Andre Vieira Thomas Preud'homme * gcc.target/arm/cmse/cmse.exp: Test different multilibs separate. * gcc.target/arm/cmse/struct-1.c: New. * gcc.target/arm/cmse/bitfield-1.c: New. * gcc.target/arm/cmse/bitfield-2.c: New. * gcc.target/arm/cmse/bitfield-3.c: New. * gcc.target/arm/cmse/baseline/cmse-2.c: New. * gcc.target/arm/cmse/baseline/softfp.c: New. * gcc.target/arm/cmse/mainline/soft/cmse-5.c: New. * gcc.target/arm/cmse/mainline/hard/cmse-5.c: New. * gcc.target/arm/cmse/mainline/hard-sp/cmse-5.c: New. * gcc.target/arm/cmse/mainline/softfp/cmse-5.c: New. * gcc.target/arm/cmse/mainline/softfp-sp/cmse-5.c: New. gcc/ Backport from trunk r243191. 2016-12-02 Andre Vieira Thomas Preud'homme * config/arm/arm.c (gimplify.h): New include. (arm_handle_cmse_nonsecure_call): New. (arm_attribute_table): Added cmse_nonsecure_call. (arm_comp_type_attributes): Deny compatibility of function types with without the cmse_nonsecure_call attribute. * doc/extend.texi (ARM ARMv8-M Security Extensions): New attribute. gcc/testsuite/ Backport from trunk r243191. 2016-12-02 Andre Vieira Thomas Preud'homme * gcc.target/arm/cmse/cmse-3.c: Add tests. * gcc.target/arm/cmse/cmse-4.c: Add tests. * gcc.target/arm/cmse/cmse-15.c: New. gcc/ Backport from trunk r243192. 2016-12-02 Andre Vieira Thomas Preud'homme * config/arm/arm.c (detect_cmse_nonsecure_call): New. (cmse_nonsecure_call_clear_caller_saved): New. (arm_reorg): Use cmse_nonsecure_call_clear_caller_saved. (arm_function_ok_for_sibcall): Disable sibcalls for cmse_nonsecure_call. * config/arm/arm-protos.h (detect_cmse_nonsecure_call): New. * config/arm/arm.md (call): Handle cmse_nonsecure_entry. (call_value): Likewise. (nonsecure_call_internal): New. (nonsecure_call_value_internal): New. * config/arm/thumb1.md (*nonsecure_call_reg_thumb1_v5): New. (*nonsecure_call_value_reg_thumb1_v5): New. * config/arm/thumb2.md (*nonsecure_call_reg_thumb2): New. (*nonsecure_call_value_reg_thumb2): New. * config/arm/unspecs.md (UNSPEC_NONSECURE_MEM): New. gcc/testsuite/ Backport from trunk r243192. 2016-12-02 Andre Vieira Thomas Preud'homme * gcc.target/arm/cmse/cmse.exp: Run tests in mainline dir. * gcc.target/arm/cmse/cmse-9.c: Added some extra tests. * gcc.target/arm/cmse/cmse-14.c: New. * gcc.target/arm/cmse/baseline/bitfield-4.c: New. * gcc.target/arm/cmse/baseline/bitfield-5.c: New. * gcc.target/arm/cmse/baseline/bitfield-6.c: New. * gcc.target/arm/cmse/baseline/bitfield-7.c: New. * gcc.target/arm/cmse/baseline/bitfield-8.c: New. * gcc.target/arm/cmse/baseline/bitfield-9.c: New. * gcc.target/arm/cmse/baseline/bitfield-and-union-1.c: New. * gcc.target/arm/cmse/baseline/cmse-11.c: New. * gcc.target/arm/cmse/baseline/cmse-13.c: New. * gcc.target/arm/cmse/baseline/cmse-6.c: New. * gcc.target/arm/cmse/baseline/union-1.c: New. * gcc.target/arm/cmse/baseline/union-2.c: New. * gcc.target/arm/cmse/mainline/bitfield-4.c: New. * gcc.target/arm/cmse/mainline/bitfield-5.c: New. * gcc.target/arm/cmse/mainline/bitfield-6.c: New. * gcc.target/arm/cmse/mainline/bitfield-7.c: New. * gcc.target/arm/cmse/mainline/bitfield-8.c: New. * gcc.target/arm/cmse/mainline/bitfield-9.c: New. * gcc.target/arm/cmse/mainline/bitfield-and-union-1.c: New. * gcc.target/arm/cmse/mainline/union-1.c: New. * gcc.target/arm/cmse/mainline/union-2.c: New. * gcc.target/arm/cmse/mainline/hard-sp/cmse-13.c: New. * gcc.target/arm/cmse/mainline/hard-sp/cmse-7.c: New. * gcc.target/arm/cmse/mainline/hard-sp/cmse-8.c: New. * gcc.target/arm/cmse/mainline/hard/cmse-13.c: New. * gcc.target/arm/cmse/mainline/hard/cmse-7.c: New. * gcc.target/arm/cmse/mainline/hard/cmse-8.c: New. * gcc.target/arm/cmse/mainline/soft/cmse-13.c: New. * gcc.target/arm/cmse/mainline/soft/cmse-7.c: New. * gcc.target/arm/cmse/mainline/soft/cmse-8.c: New. * gcc.target/arm/cmse/mainline/softfp-sp/cmse-7.c: New. * gcc.target/arm/cmse/mainline/softfp-sp/cmse-8.c: New. * gcc.target/arm/cmse/mainline/softfp/cmse-13.c: New. * gcc.target/arm/cmse/mainline/softfp/cmse-7.c: New. * gcc.target/arm/cmse/mainline/softfp/cmse-8.c: New. libgcc/ Backport from trunk r243192. 2016-12-02 Andre Vieira Thomas Preud'homme * config/arm/cmse_nonsecure_call.S: New. * config/arm/t-arm: Compile cmse_nonsecure_call.S gcc/ Backport from trunk r243193. 2016-12-02 Andre Vieira Thomas Preud'homme * config/arm/arm-builtins.c (arm_builtins): Define ARM_BUILTIN_CMSE_NONSECURE_CALLER. (bdesc_2arg): Add line for cmse_nonsecure_caller. (arm_init_builtins): Handle cmse_nonsecure_caller. (arm_expand_builtin): Likewise. * config/arm/arm_cmse.h (cmse_nonsecure_caller): New. gcc/testsuite/ Backport from trunk r243193. 2016-12-02 Andre Vieira Thomas Preud'homme * gcc.target/arm/cmse/cmse-1.c: Add test for cmse_nonsecure_caller. gcc/ Backport from trunk r243216. 2016-12-01 Jeff Law * config/arm/arm.c (arm_handle_cmse_nonsecure_call): Remove unused variable main_variant. 2017-01-11 Christophe Lyon gcc/testsuite/ Backport from trunk r243973. 2016-12-29 Andrew Pinski * gcc.dg/atomic/c11-atomic-exec-5.c: Lower ITER_COUNT to 100 for AARCH64. 2017-01-11 Christophe Lyon gcc/ Backport from trunk r240117. 2016-09-13 Tamar Christina * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins): Fix builtin type signature printing. gcc/ Backport from trunk r242914. 2016-11-28 Tamar Christina * config/arm/arm_neon.h (vget_lane_p64): New. gcc/ Backport from trunk r242915. 2016-11-28 Tamar Christina * config/aarch64/aarch64-builtins.c (TYPES_SETREGP): Added poly type. (TYPES_GETREGP): Likewise. (TYPES_SHIFTINSERTP): Likewise. (TYPES_COMBINEP): Likewise. (TYPES_STORE1P): Likewise. * config/aarch64/aarch64-simd-builtins.def (combine): Added poly generator. (get_dregoi): Likewise. (get_dregci): Likewise. (get_dregxi): Likewise. (ssli_n): Likewise. (ld1): Likewise. (st1): Likewise. * config/aarch64/arm_neon.h (poly64x1x2_t, poly64x1x3_t): New. (poly64x1x4_t, poly64x2x2_t): Likewise. (poly64x2x3_t, poly64x2x4_t): Likewise. (poly64x1_t): Likewise. (vcreate_p64, vcombine_p64): Likewise. (vdup_n_p64, vdupq_n_p64): Likewise. (vld2_p64, vld2q_p64): Likewise. (vld3_p64, vld3q_p64): Likewise. (vld4_p64, vld4q_p64): Likewise. (vld2_dup_p64, vld3_dup_p64): Likewise. (vld4_dup_p64, vsli_n_p64): Likewise. (vsliq_n_p64, vst1_p64): Likewise. (vst1q_p64, vst2_p64): Likewise. (vst3_p64, vst4_p64): Likewise. (__aarch64_vdup_lane_p64, __aarch64_vdup_laneq_p64): Likewise. (__aarch64_vdupq_lane_p64, __aarch64_vdupq_laneq_p64): Likewise. (vget_lane_p64, vgetq_lane_p64): Likewise. (vreinterpret_p8_p64, vreinterpretq_p8_p64): Likewise. (vreinterpret_p16_p64, vreinterpretq_p16_p64): Likewise. (vreinterpret_p64_f16, vreinterpret_p64_f64): Likewise. (vreinterpret_p64_s8, vreinterpret_p64_s16): Likewise. (vreinterpret_p64_s32, vreinterpret_p64_s64): Likewise. (vreinterpret_p64_f32, vreinterpret_p64_u8): Likewise. (vreinterpret_p64_u16, vreinterpret_p64_u32): Likewise. (vreinterpret_p64_u64, vreinterpret_p64_p8): Likewise. (vreinterpretq_p64_f64, vreinterpretq_p64_s8): Likewise. (vreinterpretq_p64_s16, vreinterpretq_p64_s32): Likewise. (vreinterpretq_p64_s64, vreinterpretq_p64_f16): Likewise. (vreinterpretq_p64_f32, vreinterpretq_p64_u8): Likewise. (vreinterpretq_p64_u16, vreinterpretq_p64_u32): Likewise. (vreinterpretq_p64_u64, vreinterpretq_p64_p8): Likewise. (vreinterpret_f16_p64, vreinterpretq_f16_p64): Likewise. (vreinterpret_f32_p64, vreinterpretq_f32_p64): Likewise. (vreinterpret_f64_p64, vreinterpretq_f64_p64): Likewise. (vreinterpret_s64_p64, vreinterpretq_s64_p64): Likewise. (vreinterpret_u64_p64, vreinterpretq_u64_p64): Likewise. (vreinterpret_s8_p64, vreinterpretq_s8_p64): Likewise. (vreinterpret_s16_p64, vreinterpret_s32_p64): Likewise. (vreinterpretq_s32_p64, vreinterpret_u8_p64): Likewise. (vreinterpret_u16_p64, vreinterpretq_u16_p64): Likewise. (vreinterpret_u32_p64, vreinterpretq_u32_p64): Likewise. (vset_lane_p64, vsetq_lane_p64): Likewise. (vget_low_p64, vget_high_p64): Likewise. (vcombine_p64, vst2_lane_p64): Likewise. (vst3_lane_p64, vst4_lane_p64): Likewise. (vst2q_lane_p64, vst3q_lane_p64): Likewise. (vst4q_lane_p64, vget_lane_p64): Likewise. (vget_laneq_p64, vset_lane_p64): Likewise. (vset_laneq_p64, vcopy_lane_p64): Likewise. (vcopy_laneq_p64, vdup_n_p64): Likewise. (vdupq_n_p64, vdup_lane_p64): Likewise. (vdup_laneq_p64, vld1_p64): Likewise. (vld1q_p64, vld1_dup_p64): Likewise. (vld1q_dup_p64, vld1q_dup_p64): Likewise. (vmov_n_p64, vmovq_n_p64): Likewise. (vst3q_p64, vst4q_p64): Likewise. (vld1_lane_p64, vld1q_lane_p64): Likewise. (vst1_lane_p64, vst1q_lane_p64): Likewise. (vcopy_laneq_p64, vcopyq_laneq_p64): Likewise. (vdupq_laneq_p64): Likewise. gcc/ Backport from trunk r242916. 2016-11-28 Tamar Christina * config/aarch64/aarch64-simd-builtins.def (BSL_P): Added di and v2di mode. * config/aarch64/arm_neon.h (vsriq_n_p64, vsri_n_p64): Added poly type. (vextq_p64, vext_p64): Likewise. (vceq_p64, vbslq_p64, vbsl_p64): Likewise. gcc/testsuite/ Backport from trunk r242962. 2016-11-29 Tamar Christina * gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h (AARCH64_ONLY, CHECK_CRYPTO): New macros. (Poly64x1_t, Poly64x2_t): Added types. * gcc.target/aarch64/advsimd-intrinsics/p64_p128.c (vmov_n_p64, vmovq_n_p64): Added. (vld2_lane_p64, vld2q_lane_p64): Likewise. (vld3_lane_p64, vld3q_lane_p64): Likewise. (vld4_lane_p64, vld4q_lane_p64): Likewise. (vst2_lane_p64, vst2q_lane_p64): Likewise. (vst3_lane_p64, vst3q_lane_p64): Likewise. (vst4_lane_p64, vst4q_lane_p64): Likewise. (vget_lane_p64, vgetq_lane_p64): Likewise. (vget_high_p64): Likewise. * gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p128.c: Added AArch64 flags. (vreint_vector, vreint_vector_res): Moved to header. * gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p64.c: Added Aarch64 flags. (vreint_vector, vreint_vector_res): Moved to header. gcc/ Backport from trunk r243287. 2016-12-06 Tamar Christina * gcc/config/aarch64/arm_neon.h (vreinterpretq_p8_p128, vreinterpretq_p16_p128): Added. (vreinterpret_p64_p16, vreinterpretq_p64_p128): Likewise. (vreinterpretq_p64_p16, vreinterpretq_p128_p8): Likewise. (vreinterpretq_p128_p16, vreinterpretq_p128_f16): Likewise. (vreinterpretq_p128_f32, vreinterpretq_p128_p64): Likewise. (vreinterpretq_p128_s64, vreinterpretq_p128_u64): Likewise. (vreinterpretq_p128_s8, vreinterpretq_p128_s16): Likewise. (vreinterpretq_p128_s32, vreinterpretq_p128_u8): Likewise. (vreinterpretq_p128_u16, vreinterpretq_p128_u32): Likewise. (vreinterpretq_f16_p128, vreinterpretq_f32_p128): Likewise. (vreinterpretq_s64_p128, vreinterpretq_u64_p128): Likewise. (vreinterpretq_s8_p128, vreinterpretq_s16_p128): Likewise. (vreinterpretq_s32_p128, vreinterpretq_u8_p128): Likewise. (vreinterpretq_u16_p128, vreinterpretq_u32_p128): Likewise. gcc/testsuite/ Backport from trunk r243430. 2016-12-08 Christophe Lyon * gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h (CHECK_CRYPTO): Remove. (expected_poly64x1_t, expected_poly64x2_t): Remove 2017-01-11 Christophe Lyon gcc/ Backport from trunk r242869. 2016-11-25 Thomas Preud'homme PR tree-optimization/77673 * tree-ssa-math-opts.c (struct symbolic_number): Add new src field. (init_symbolic_number): Initialize src field from src parameter. (perform_symbolic_merge): Select most dominated statement as the source statement. Set src field of resulting n structure from the input src with the lowest address. (find_bswap_or_nop): Rename source_stmt into ins_stmt. (bswap_replace): Rename src_stmt into ins_stmt. Initially get source of load from src field rather than insertion statement. Cancel optimization if statement analyzed is not dominated by the insertion statement. (pass_optimize_bswap::execute): Rename src_stmt to ins_stmt. Compute dominance information. gcc/testsuite/ Backport from trunk r242869. 2016-11-25 Thomas Preud'homme PR tree-optimization/77673 * gcc.dg/pr77673.c: New test. gcc/ Backport from trunk r242870. 2016-11-25 Thomas Preud'homme * tree-ssa-math-opts.c (struct symbolic_number): Improve comment. 2017-01-09 Yvan Roux Merge branches/gcc-6-branch rev 244220. 2016-12-14 Yvan Roux gcc/ * LINARO-VERSION: Bump version number, post snapshot. 2016-12-14 Yvan Roux Make Linaro GCC Snapshot 6.2-2016.12. gcc/ * LINARO-VERSION: Update. 2016-12-13 Yvan Roux Merge branches/gcc-6-branch rev 243594. 2016-12-13 Yvan Roux ./ Backport from trunk r240949. 2016-10-10 Andreas Tobler * configure.ac: Add aarch64-*-freebsd*. * configure: Regenerate. gcc/ Backport from trunk r240949. 2016-10-10 Andreas Tobler * config.gcc: Add aarch64-*-freebsd* support. * config.host: Likewise. * config/aarch64/aarch64-freebsd.h: New file. * config/aarch64/t-aarch64-freebsd: Ditto. libgcc/ Backport from trunk r240949. 2016-10-10 Andreas Tobler * config.host: Add support for aarch64-*-freebsd*. 2016-12-13 Yvan Roux gcc/ Backport from trunk r241791. 2016-11-26 Wilco Dijkstra * config/aarch64/aarch64-simd.md (aarch64_crypto_sha1hv4si): New pattern. (aarch64_be_crypto_sha1hv4si): New pattern. 2016-12-13 Yvan Roux gcc/ Backport from trunk r241116, 241119. 2016-10-13 Richard Earnshaw * arm.h (TARGET_VFP): Unconditionally define to 1. (arm_fpu_desc): Remove 'model' field. (TARGET_FPU_MODEL): Delete. * arm.c (all_fpus): Don't initialize the model field. (arm_can_inline_p): Don't check the FPU model. * arm-fpus.def: Remove redundant model field from all FPU descriptions. gcc/ Backport from trunk r241118, 241119. 2016-10-13 Richard Earnshaw * arm.h (TARGET_VFP): Delete. (TARGET_VFPD32): Remove references to TARGET_VFP. (TARGET_VFP3, TARGET_VFP5): Likewise. (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE): Likewise. (TARGET_NEON_FP16): Likewise. (TARGET_FMA): Likewise. (TARGET_CRYPTO): Likewise. (TARGET_NEON): Likewise. (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise. (FUNCTION_ARG_REGNO_P): Likewise. * arm.c (arm_option_check_internal): Likewise. (arm_option_override): Likewise. (use_return_insn): Likewise. (arm_function_value_regno_p): Likewise. (arm_apply_result_size): Likewise. (use_vfp_abi): Likewise. (arm_legitimate_address_outer_p): Likewise. (thumb2_legitimate_address_p): Likewise. (arm_legitimate_index_p): Likewise. (thumb2_legitimate_index_p): Likewise. (arm_legitimate_address): Likewise. (arm_get_vfp_saved_size): Likewise. (arm_emit_vfp_multi_reg_pop): Likewise. (arm_get_frame_offsets): Likewise. (arm_save_coproc_regs): Likewise. (arm_hard_regno_mode_ok): Likewise. (arm_expand_epilogue_apcs_frame): Likewise. (arm_expand_epilogue): Likewise. (arm_file_start): Likewise. (arm_conditional_register_usage): Likewise. (arm_validize_comparison): Use vfp_compare_operand directly. * arm-builtins.c (arm_init_builtins): Remove references to TARGET_VFP. (arm_expand_vfp_builtin): Use TARGET_HARD_FLOAT for detecting unsupported usage. (arm_atomic_assign_expand_fenv): Likewise. * arm.md (divsf3): Likewise. (arm_negsi2): Likewise. (absdf2): Likewise. (arm_movdi): Likewise. (arm_movt): Likewise. (cbranchsf4): Change predicate to vfp_compare_operand. (cbranchdf4): Change predicate to vfp_compare_operand. (cstorehf4): Change predicate to vfp_compare_operand. (cstoresf4): Change predicate to vfp_compare_operand. (cstoredf4): Change predicate to vfp_compare_operand. (vfp_pop_multiple_with_writeback): Remove references to TARGET_VFP. (movhi_insn_arch4, movhi_bytes): Likewise. * constraints.md (Dt): Likewise. (Dp): Likewise. * iterators.md (SDF): Likewise. * predicates.md (arm_float_compare_operand): Delete. (const_double_vcvt_power_of_two_reciprocal): Remove references to TARGET_VFP. (const_double_vcvt_power_of_two): Likewise. * thumb2.md thumb2_movsi_insn): Likewise. * vfp.md (arm_movhi_vfp, thumb2_movhi_vfp): Likewise. (movhf_vfp): Likewise. (arm_movsi_vfp, thumb2_movsi_vfp): Likewise. (movdi_vfp, movdi_vfp_cortexa8): Likewise. (movsf_vfp, thumb2_movsf_vfp): Likewise. (movdf_vfp, thumb2_movdf_vfp): Likewise. (movsfcc_vfp, abssf2_vfp, negsf2_vfp, addsf3_vfp): Likewise. (subsf3_vfp, divsf3_vfp): Likewise. (mulsf3_vfp, mulsf3negsf_vfp, negmulsf3_vfp): Likewise. (mulsf3addsf_vfp, (mulsf3subsf_vfp, mulsf3negsfaddsf_vfp): Likewise. (mulsf3negsfsubsf_vfp): Likewise. (truncsisf2_vfp, fixuns_truncsfsi2, floatsisf2_vfp): Likewise. (floatunssisf2, sqrtsf2_vfp): Likewise. (movcc_vfp): Likewise. (cmpsf_split_vfp, cmpsf_trap_split_vfp): Likewise. (cmpsf_vfp, cmpsf_trap_vfp): Likewise. (push_multi_vfp): Likewise. (set_fpscr, get_fpscr): Likewise. * arm-c.c (arm_cpu_builtins): Unconditionally define __VFP_FP__. 2016-12-13 Yvan Roux gcc/ Backport from trunk r241736. 2016-11-01 Bilyan Borisov Tamar Christina * config/arm/arm-c.c (arm_cpu_builtins): New macro definition. * config/arm/arm_neon.h (vmaxnm_f32): New intrinsinc. (vmaxnmq_f32): Likewise. (vminnm_f32): Likewise. (vminnmq_f32): Likewise. * config/arm/arm_neon_builtins.def (vmaxnm): New builtin. (vminnm): Likewise. * config/arm/neon.md (neon_, VCVTF): New expander. gcc/testsuite/ Backport from trunk r241736. 2016-11-01 Bilyan Borisov * gcc.target/arm/simd/vmaxnm_f32_1.c: New. * gcc.target/arm/simd/vmaxnmq_f32_1.c: Likewise. * gcc.target/arm/simd/vminnm_f32_1.c: Likewise. * gcc.target/arm/simd/vminnmq_f32_1.c: Likewise. gcc/testsuite/ Backport from trunk r241797. 2016-11-01 Tamar Christina * gcc.target/arm/simd/vmaxnm_f32_1.c (dg-require-effective-target): Check for arm_v8_neon_hw. * gcc.target/arm/simd/vmaxnmq_f32_1.c (dg-require-effective-target): Likewise. * gcc.target/arm/simd/vminnm_f32_1.c (dg-require-effective-target): Likewise. * gcc.target/arm/simd/vminnmq_f32_1.c(dg-require-effective-target): Likewise. 2016-12-13 Yvan Roux gcc/testsuite/ Backport from trunk r241957. 2016-11-08 Tamar Christina PR testsuite/78136 * gcc.dg/cpp/trad/trad.exp (dg-runtest): Added $srcdir/$subdir/ to Include dirs. * gcc.dg/cpp/trad/include.c: Use local header file. gcc/testsuite/ Backport from trunk r242500. 2016-11-16 Tamar Christina PR testsuite/78136 * gcc.dg/cpp/trad/trad.exp (dg-runtest): Moved $srcdir/$subdir/ to DEFAULT_TRADCPPFLAGS. 2016-12-13 Yvan Roux gcc/ Backport from trunk r241229. 2016-10-17 Prathamesh Kulkarni PR tree-optimization/71636 * match.pd (x & ((1 << b) - 1) -> x & ~(~0 << b)): New pattern. gcc/testsuite/ Backport from trunk r241229. 2016-10-17 Prathamesh Kulkarni * gcc.dg/pr71636-1.c: New test-case. * gcc.dg/pr71636-2.c: Likewise. 2016-12-12 Yvan Roux gcc/ Backport from trunk r241958. 2016-11-08 James Greenhalgh * config/aarch64/t-aarch64 (aarch64-c.o): Depend on TARGET_H. 2016-12-12 Yvan Roux gcc/ Backport from trunk r241790. 2016-11-02 Wilco Dijkstra * config/aarch64/aarch64.md (add3): Remove redundant code. Don't split frame based additions. 2016-12-12 Yvan Roux gcc/ Backport from trunk r241777. 2016-11-02 Kyrylo Tkachov * config/aarch64/aarch64.c (aarch64_register_saved_on_entry): Add function comment. (aarch64_next_callee_save): Likewise. (aarch64_pushwb_single_reg): Likewise. (aarch64_gen_storewb_pair): Likewise. (aarch64_push_regs): Likewise. (aarch64_gen_loadwb_pair): Likewise. (aarch64_pop_regs): Likewise. (aarch64_gen_store_pair): Likewise. (aarch64_gen_load_pair): Likewise. (aarch64_save_callee_saves): Likewise. (aarch64_restore_callee_saves): Likewise. 2016-12-12 Yvan Roux gcc/ Backport from trunk r241686. 2016-10-30 Prathamesh Kulkarni * config/arm/arm.c (arm_const_not_ok_for_debug_p): Use VAR_P. 2016-12-12 Yvan Roux gcc/ Backport from trunk r241508. 2016-10-25 Wilco Dijkstra PR target/78041 * config/arm/neon.md (ashldi3_neon): Add "r 0 i" and "&r r i" variants. Remove partial overlap check for shift by 1. (ashldi3_neon): Likewise. gcc/testsuite/ Backport from trunk r241508. 2016-10-25 Wilco Dijkstra PR target/78041 * gcc.target/arm/pr78041.c: New test. 2016-12-12 Yvan Roux gcc/ Backport from trunk r241419. 2016-10-21 Wilco Dijkstra * config/aarch64/aarch64.c (aarch64_layout_frame): Align FP callee-saves. gcc/ Backport from trunk r241420. 2016-10-21 Wilco Dijkstra * config/aarch64/aarch64.c (aarch64_add_constant_internal): Add extra argument to allow emitting the move immediate. Use add/sub with positive immediate. (aarch64_add_constant): Add inline function. (aarch64_add_sp): Likewise. (aarch64_sub_sp): Likewise. (aarch64_expand_prologue): Call aarch64_sub_sp. (aarch64_expand_epilogue): Call aarch64_add_sp. Decide when to leave out move. (aarch64_output_mi_thunk): Call aarch64_add_constant. gcc/testsuite/ Backport from trunk r241420. 2016-10-21 Wilco Dijkstra * gcc.target/aarch64/test_frame_17.c: New test. gcc/testsuite/ Backport from trunk r241421. 2016-10-21 Wilco Dijkstra * gcc.target/aarch64/test_frame_17.c: New test. 2016-12-12 Yvan Roux gcc/ Backport from trunk r240846. 2016-10-06 Andrew Pinski * config/aarch64/aarch64-cores.def: Add a comment before each set of cores. 2016-12-12 Yvan Roux gcc/ Backport from trunk r240614. 2016-09-29 James Greenhalgh * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Remove. * system.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Poison. gcc/ada/ Backport from trunk r240614. 2016-09-29 James Greenhalgh * gcc-interface/misc.c (gnat_post_options): Remove special case for TARGET_FLT_EVAL_METHOD_NON_DEFAULT with -fexcess-precision=standard. gcc/c-family/ Backport from trunk r240614. 2016-09-29 James Greenhalgh * c-opts.c (c_common_post_options): Remove special case for TARGET_FLT_EVAL_METHOD_NON_DEFAULT with -fexcess-precision=standard in C++. gcc/fortran/ Backport from trunk r240614. 2016-09-29 James Greenhalgh * options.c (gfc_post_options): Remove special case for TARGET_FLT_EVAL_METHOD_NON_DEFAULT with -fexcess-precision=standard. gcc/java/ Backport from trunk r240614. 2016-09-29 James Greenhalgh * lang.c (java_post_options): Remove special case for TARGET_FLT_EVAL_METHOD_NON_DEFAULT with -fexcess-precision=standard. 2016-12-12 Yvan Roux gcc/ Backport from trunk r240568. 2016-09-28 Wilco Dijkstra PR tree-optimization/61056 * gimple-fold.c (gimple_fold_builtin_strchr): New function to optimize strchr (s, 0) to strlen. (gimple_fold_builtin): Add BUILT_IN_STRCHR case. gcc/testsuite/ Backport from trunk r240568. 2016-09-28 Wilco Dijkstra * gcc.dg/strlenopt-20.c: Update test. * gcc.dg/strlenopt-21.c: Likewise. * gcc.dg/strlenopt-22.c: Likewise. * gcc.dg/strlenopt-22g.c: Likewise. * gcc.dg/strlenopt-26.c: Likewise. * gcc.dg/strlenopt-5.c: Likewise. * gcc.dg/strlenopt-7.c: Likewise. * gcc.dg/strlenopt-9.c: Likewise. gcc/ Backport from trunk r240585. 2016-09-28 Wilco Dijkstra * gimple-fold.c (gimple_fold_builtin): After failing to fold strchr, also try the generic folding. 2016-12-12 Yvan Roux gcc/testsuite/ Backport from trunk r240314. 2016-09-21 Matthew Wahab * gcc.target/arm/fp16-aapcs-3.c: New. * gcc.target/arm/fp16-aapcs-4.c: New. * gcc.target/arm/aapcs/aapcs/vfp22.c: New. * gcc.target/arm/aapcs/aapcs/vfp23.c: New. * gcc.target/arm/aapcs/aapcs/vfp24.c: New. * gcc.target/arm/aapcs/aapcs/vfp25.c: New. 2016-12-12 Yvan Roux contrib/ Backport from trunk r240288. 2016-09-20 Christophe Lyon * compare_tests: Take ERROR messages into account when comparing. contrib/ Backport from trunk r240289. 2016-09-20 Christophe Lyon * dg-extract-results.py: Report DejaGnu error in the final summary. * dg-extract-results.sh: Likewise. 2016-11-21 Yvan Roux gcc/ Backport from trunk r239561. 2016-08-18  Tamar Christina  Ramana Radhakrishnan  * varasm.c (default_use_anchors_for_symbol_p): Reject too large decls. gcc/ Backport from trunk r242555. 2016-11-17 Jakub Jelinek PR middle-end/78201 * varasm.c (default_use_anchors_for_symbol_p): Fix a comment typo. Don't test decl != NULL. Don't look at DECL_SIZE, but DECL_SIZE_UNIT instead, return false if it is NULL, or doesn't fit into uhwi, or is larger or equal to targetm.max_anchor_offset. gcc/testsuite/ Backport from trunk r242555. 2016-11-17 Jakub Jelinek PR middle-end/78201 * g++.dg/opt/pr78201.C: New test. 2016-11-17 Yvan Roux gcc/ * LINARO-VERSION: Bump version number, post snapshot. 2016-11-17 Yvan Roux Make Linaro GCC Snapshot 6.2-2016.11. gcc/ * LINARO-VERSION: Update. 2016-11-15 Yvan Roux Merge branches/gcc-6-branch rev 242371. 2016-11-09 Yvan Roux gcc/ Revert backport from trunk r239561. 2016-08-18 Tamar Christina Ramana Radhakrishnan * varasm.c (default_use_anchors_for_symbol_p): Reject too large * decls. This reverts commit 11879870dc041028bcb8d078d9ddbd7e400dd03f. 2016-10-17 Yvan Roux gcc/ * LINARO-VERSION: Bump version number, post snapshot. 2016-10-17 Yvan Roux Make Linaro GCC Snapshot 6.2-2016.10. gcc/ * LINARO-VERSION: Update. 2016-10-16 Yvan Roux Merge branches/gcc-6-branch rev 241214. 2016-10-16 Yvan Roux gcc/ Backport from trunk r240398. 2016-09-23 Matthew Wahab * config/arm/arm-arches.def ("armv8.1-a"): Add FL_CRC32. ("armv8.2-a"): New. ("armv8.2-a+fp16"): New. * config/arm/arm-protos.h (FL2_ARCH8_2): New. (FL2_FP16INST): New. (FL2_FOR_ARCH8_2A): New. * config/arm/arm-tables.opt: Regenerate. * config/arm/arm.c (arm_arch8_2): New. (arm_fp16_inst): New. (arm_option_override): Set arm_arch8_2 and arm_fp16_inst. Check for incompatible fp16-format settings. * config/arm/arm.h (TARGET_VFP_FP16INST): New. (TARGET_NEON_FP16INST): New. (arm_arch8_2): Declare. (arm_fp16_inst): Declare. * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for march=armv8.2-a and march=armv8.2-a+fp16. * config/arm/t-aprofile (Arch Matches): Add entries for armv8.2-a and armv8.2-a+fp16. * doc/invoke.texi (ARM Options): Add "-march=armv8.1-a", "-march=armv8.2-a" and "-march=armv8.2-a+fp16". gcc/ Backport from trunk r240400. 2016-09-23 Matthew Wahab * doc/sourcebuild.texi (ARM-specific attributes): Add entries for arm_fp16_alternative_ok and arm_fp16_none_ok. gcc/testsuite/ Backport from trunk r240400. 2016-09-23 Matthew Wahab * g++.dg/ext/arm-fp16/arm-fp16-ops-3.C: Use arm_fp16_alternative_ok. * g++.dg/ext/arm-fp16/arm-fp16-ops-4.C: Likewise. * gcc.dg/torture/arm-fp16-int-convert-alt.c: Likewise. * gcc/testsuite/gcc.dg/torture/arm-fp16-ops-3.c: Likewise. * gcc/testsuite/gcc.dg/torture/arm-fp16-ops-4.c: Likewise. * gcc.target/arm/fp16-compile-alt-1.c: Likewise. * gcc.target/arm/fp16-compile-alt-10.c: Likewise. * gcc.target/arm/fp16-compile-alt-11.c: Likewise. * gcc.target/arm/fp16-compile-alt-12.c: Likewise. * gcc.target/arm/fp16-compile-alt-2.c: Likewise. * gcc.target/arm/fp16-compile-alt-3.c: Likewise. * gcc.target/arm/fp16-compile-alt-4.c: Likewise. * gcc.target/arm/fp16-compile-alt-5.c: Likewise. * gcc.target/arm/fp16-compile-alt-6.c: Likewise. * gcc.target/arm/fp16-compile-alt-7.c: Likewise. * gcc.target/arm/fp16-compile-alt-8.c: Likewise. * gcc.target/arm/fp16-compile-alt-9.c: Likewise. * gcc.target/arm/fp16-compile-none-1.c: Use arm_fp16_none_ok. * gcc.target/arm/fp16-compile-none-2.c: Likewise. * gcc.target/arm/fp16-rounding-alt-1.c: Use arm_fp16_alternative_ok. * lib/target-supports.exp (check_effective_target_arm_fp16_alternative_ok_nocache): New. (check_effective_target_arm_fp16_alternative_ok): New. (check_effective_target_arm_fp16_none_ok_nocache): New. (check_effective_target_arm_fp16_none_ok): New. gcc/ Backport from trunk r240401. 2016-09-23 Matthew Wahab * doc/sourcebuild.texi (ARM-specific attributes): Add anchor for arm_v8_1a_neon_ok. Add entries for arm_v8_2a_fp16_scalar_ok, arm_v8_2a_fp16_scalar_hw, arm_v8_2a_fp16_neon_ok and arm_v8_2a_fp16_neon_hw. (Add options): Add entries for arm_v8_1a_neon, arm_v8_2a_scalar, arm_v8_2a_neon. gcc/testsuite/ Backport from trunk r240401. 2016-09-23 Matthew Wahab * lib/target-supports.exp (add_options_for_arm_v8_2a_fp16_scalar): New. (add_options_for_arm_v8_2a_fp16_neon): New. (check_effective_target_arm_arch_v8_2a_ok): Auto-generate. (add_options_for_arm_arch_v8_2a): Auto-generate. (check_effective_target_arm_arch_v8_2a_multilib): Auto-generate. (check_effective_target_arm_v8_2a_fp16_scalar_ok_nocache): New. (check_effective_target_arm_v8_2a_fp16_scalar_ok): New. (check_effective_target_arm_v8_2a_fp16_neon_ok_nocache): New. (check_effective_target_arm_v8_2a_fp16_neon_ok): New. (check_effective_target_arm_v8_2a_fp16_scalar_hw): New. (check_effective_target_arm_v8_2a_fp16_neon_hw): New. gcc/ Backport from trunk r240402. 2016-09-23 Matthew Wahab * config/arm/arm-c.c (arm_cpu_builtins): Define "__ARM_FEATURE_FP16_SCALAR_ARITHMETIC" and "__ARM_FEATURE_FP16_VECTOR_ARITHMETIC". gcc/testsuite/ Backport from trunk r240402. 2016-09-23 Matthew Wahab * gcc.target/arm/attr-fp16-arith-1.c: New. gcc/ Backport from trunk r240403. 2016-09-23 Jiong Wang Matthew Wahab * config/arm/arm.c (output_move_vfp): Weaken assert to allow HImode. (arm_hard_regno_mode_ok): Allow HImode values in VFP registers. * config/arm/arm.md (*movhi_bytes): Disable when VFP registers are available. Also fix some white-space. * config/arm/vfp.md (*arm_movhi_vfp): New. (*thumb2_movhi_vfp): New. gcc/testsuite/ Backport from trunk r240403. 2016-09-23 Matthew Wahab * gcc.target/arm/short-vfp-1.c: New. gcc/ Backport from trunk r240404. 2016-09-23 Matthew Wahab * config/arm/arm.c (arm_evpc_neon_vuzp): Add support for V8HF and V4HF modes. (arm_evpc_neon_vtrn): Likewise. (arm_evpc_neon_vrev): Likewise. (arm_evpc_neon_vext): Likewise. * config/arm/arm_neon.h (vbsl_f16): New. (vbslq_f16): New. (vdup_n_f16): New. (vdupq_n_f16): New. (vdup_lane_f16): New. (vdupq_lane_f16): New. (vext_f16): New. (vextq_f16): New. (vmov_n_f16): New. (vmovq_n_f16): New. (vrev64_f16): New. (vrev64q_f16): New. (vtrn_f16): New. (vtrnq_f16): New. (vuzp_f16): New. (vuzpq_f16): New. (vzip_f16): New. (vzipq_f16): New. * config/arm/arm_neon_buillins.def (vdup_n): New (v8hf, v4hf variants). (vdup_lane): New (v8hf, v4hf variants). (vext): New (v8hf, v4hf variants). (vbsl): New (v8hf, v4hf variants). * config/arm/iterators.md (VDQWH): New. (VH): New. (V_double_vector_mode): Add V8HF and V4HF. Fix white-space. (Scalar_mul_8_16): Fix white-space. (Is_d_reg): Add V4HF and V8HF. * config/arm/neon.md (neon_vdup_lane_internal): New. (neon_vdup_lane): New. (neon_vtrn_internal): Replace VDQW with VDQWH. (*neon_vtrn_insn): Likewise. (neon_vzip_internal): Likewise. Also fix white-space. (*neon_vzip_insn): Likewise (neon_vuzp_internal): Likewise. (*neon_vuzp_insn): Likewise * config/arm/vec-common.md (vec_perm_const): New. gcc/testsuite/ Backport from trunk r240404. 2016-09-23 Matthew Wahab * gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h (FP16_SUPPORTED): New (expected-hfloat-16x4): Make conditional on __fp16 support. (expected-hfloat-16x8): Likewise. (vdup_n_f16): Disable for non-AArch64 targets. * gcc.target/aarch64/advsimd-intrinsics/vbsl.c: Add __fp16 tests, conditional on FP16_SUPPORTED. * gcc.target/aarch64/advsimd-intrinsics/vdup-vmov.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vdup_lane.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vext.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vrev.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vshuffle.inc: Add support for testing __fp16. * gcc.target/aarch64/advsimd-intrinsics/vtrn.c: Add __fp16 tests, conditional on FP16_SUPPORTED. * gcc.target/aarch64/advsimd-intrinsics/vuzp.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vzip.c: Likewise. gcc/ Backport from trunk r240407. 2016-09-23 Matthew Wahab Jiong Wang * config/arm/arm.c (coproc_secondary_reload_class): Make HFmode available when FP16 instructions are available. (output_move_vfp): Add support for 16-bit data moves. (arm_validize_comparison): Fix some white-space. Support HFmode by conversion to SFmode. * config/arm/arm.md (truncdfhf2): Fix a comment. (extendhfdf2): Likewise. (cstorehf4): New. (movsicc): Fix some white-space. (movhfcc): New. (movsfcc): Fix some white-space. (*cmovhf): New. * config/arm/vfp.md (*arm_movhi_vfp): Disable when VFP FP16 instructions are available. (*thumb2_movhi_vfp): Likewise. (*arm_movhi_fp16): New. (*thumb2_movhi_fp16): New. (*movhf_vfp_fp16): New. (*movhf_vfp_neon): Disable when VFP FP16 instructions are available. (*movhf_vfp): Likewise. (extendhfsf2): Enable when VFP FP16 instructions are available. (truncsfhf2): Enable when VFP FP16 instructions are available. gcc/testsuite/ Backport from trunk r240407. 2016-09-23 Matthew Wahab * gcc.target/arm/armv8_2_fp16-move-1.c: New. * gcc.target/arm/fp16-aapcs-1.c: Update expected output. gcc/ Backport from trunk r240411. 2016-09-23 Matthew Wahab * config/arm/iterators.md (Code iterators): Fix some white-space in the comments. (GLTE): New. (ABSNEG): New (FCVT): Moved from vfp.md. (VCVT_HF_US_N): New. (VCVT_SI_US_N): New. (VCVT_HF_US): New. (VCVTH_US): New. (FP16_RND): New. (absneg_str): New. (FCVTI32typename): Moved from vfp.md. (sup): Add UNSPEC_VCVTA_S, UNSPEC_VCVTA_U, UNSPEC_VCVTM_S, UNSPEC_VCVTM_U, UNSPEC_VCVTN_S, UNSPEC_VCVTN_U, UNSPEC_VCVTP_S, UNSPEC_VCVTP_U, UNSPEC_VCVT_HF_S_N, UNSPEC_VCVT_HF_U_N, UNSPEC_VCVT_SI_S_N, UNSPEC_VCVT_SI_U_N, UNSPEC_VCVTH_S_N, UNSPEC_VCVTH_U_N, UNSPEC_VCVTH_S and UNSPEC_VCVTH_U. (vcvth_op): New. (fp16_rnd_str): New. (fp16_rnd_insn): New. * config/arm/unspecs.md (UNSPEC_VCVT_HF_S_N): New. (UNSPEC_VCVT_HF_U_N): New. (UNSPEC_VCVT_SI_S_N): New. (UNSPEC_VCVT_SI_U_N): New. (UNSPEC_VCVTH_S): New. (UNSPEC_VCVTH_U): New. (UNSPEC_VCVTA_S): New. (UNSPEC_VCVTA_U): New. (UNSPEC_VCVTM_S): New. (UNSPEC_VCVTM_U): New. (UNSPEC_VCVTN_S): New. (UNSPEC_VCVTN_U): New. (UNSPEC_VCVTP_S): New. (UNSPEC_VCVTP_U): New. (UNSPEC_VCVTP_S): New. (UNSPEC_VCVTP_U): New. (UNSPEC_VRND): New. (UNSPEC_VRNDA): New. (UNSPEC_VRNDI): New. (UNSPEC_VRNDM): New. (UNSPEC_VRNDN): New. (UNSPEC_VRNDP): New. (UNSPEC_VRNDX): New. * config/arm/vfp.md (hf2): New. (neon_vabshf): New. (neon_vhf): New. (neon_vrndihf): New. (addhf3): New. (subhf3): New. (divhf3): New. (mulhf3): New. (*mulsf3neghf_vfp): New. (*negmulhf3_vfp): New. (*mulsf3addhf_vfp): New. (*mulhf3subhf_vfp): New. (*mulhf3neghfaddhf_vfp): New. (*mulhf3neghfsubhf_vfp): New. (fmahf4): New. (neon_vfmahf): New. (fmsubhf4_fp16): New. (neon_vfmshf): New. (*fnmsubhf4): New. (*fnmaddhf4): New. (neon_vsqrthf): New. (neon_vrsqrtshf): New. (FCVT): Move to iterators.md. (FCVTI32typename): Likewise. (neon_vcvthhf): New. (neon_vcvthsi): New. (neon_vcvth_nhf_unspec): New. (neon_vcvth_nhf): New. (neon_vcvth_nsi_unspec): New. (neon_vcvth_nsi): New. (neon_vcvthsi): New. (neon_hf): New. gcc/testsuite/ Backport from trunk r240411. 2016-09-23 Matthew Wahab * gcc.target/arm/armv8_2-fp16-arith-1.c: New. * gcc.target/arm/armv8_2-fp16-conv-1.c: New. gcc/ Backport from trunk r240415. 2016-09-23 Matthew Wahab * config/arm/iterators.md (VCVTHI): New. (NEON_VCMP): Add UNSPEC_VCLT and UNSPEC_VCLE. Fix a long line. (NEON_VAGLTE): New. (VFM_LANE_AS): New. (VH_CVTTO): New. (V_reg): Add HF, V4HF and V8HF. Fix white-space. (V_HALF): Add V4HF. Fix white-space. (V_if_elem): Add HF, V4HF and V8HF. Fix white-space. (V_s_elem): Likewise. (V_sz_elem): Fix white-space. (V_elem_ch): Likewise. (VH_elem_ch): New. (scalar_mul_constraint): Add V8HF and V4HF. (Is_float_mode): Fix white-space. (Is_d_reg): Add V4HF and V8HF. Fix white-space. (q): Add HF. Fix white-space. (float_sup): New. (float_SUP): New. (cmp_op_unsp): Add UNSPEC_VCALE and UNSPEC_VCALT. (neon_vfm_lane_as): New. * config/arm/neon.md (add3_fp16): New. (sub3_fp16): New. (mul3add_neon): New. (fma4_intrinsic): New. (fmsub4_intrinsic): Fix white-space. (fmsub4_intrinsic): New. (2): New. (neon_v): New. (neon_v): New. (neon_vrsqrte): New. (neon_vpaddv4hf): New. (neon_vadd): New. (neon_vsub): New. (neon_vmulf): New. (neon_vfma): New. (neon_vfms): New. (neon_vc): New. (neon_vc_fp16insn): New (neon_vc_fp16insn_unspec): New. (neon_vca): New. (neon_vca_fp16insn): New. (neon_vca_fp16insn_unspec): New. (neon_vcz): New. (neon_vabd): New. (neon_vf): New. (neon_vpfv4hf: New. (neon_): New. (neon_vrecps): New. (neon_vrsqrts): New. (neon_vrecpe): New (VH variant). (neon_vdup_lane_internal): New. (neon_vdup_lane): New. (neon_vcvt): New (VCVTHI variant). (neon_vcvt): New (VH variant). (neon_vcvt_n): New (VH variant). (neon_vcvt_n): New (VCVTHI variant). (neon_vcvt): New. (neon_vmul_lane): New. (neon_vmul_n): New. * config/arm/unspecs.md (UNSPEC_VCALE): New (UNSPEC_VCALT): New. (UNSPEC_VFMA_LANE): New. (UNSPECS_VFMS_LANE): New. gcc/testsuite/ Backport from trunk r240415. 2016-09-23 Matthew Wahab * gcc.target/arm/armv8_2-fp16-arith-1.c: Use arm_v8_2a_fp16_neon options. Add tests for float16x4_t and float16x8_t. gcc/ Backport from trunk r240416. 2016-09-23 Matthew Wahab * config/arm/arm-builtins.c (arm_init_neon_builtin): New. (arm_init_builtins): Move body of a loop to the standalone function arm_init_neon_builtin. (arm_expand_neon_builtin_1): New. Update comment. Function body moved from arm_neon_builtin with some white-space fixes. (arm_expand_neon_builtin): Move code into the standalone function arm_expand_neon_builtin_1. gcc/ Backport from trunk r240421. 2016-09-23 Matthew Wahab * config/arm/arm-builtins.c (hf_UP): New. (si_UP): New. (vfp_builtin_data): New. Update comment. (enum arm_builtins): Include "arm_vfp_builtins.def". (ARM_BUILTIN_VFP_PATTERN_START): New. (arm_init_vfp_builtins): New. (arm_init_builtins): Add arm_init_vfp_builtins. (arm_expand_vfp_builtin): New. (arm_expand_builtins): Update for arm_expand_vfp_builtin. Fix long line. * config/arm/arm_vfp_builtins.def: New file. * config/arm/t-arm (arm.o): Add arm_vfp_builtins.def. (arm-builtins.o): Likewise. gcc/ Backport from trunk r240422. 2016-09-23 Matthew Wahab * config/arm/arm_neon_builtins.def (vadd): New (v8hf, v4hf variants). (vmulf): New (v8hf, v4hf variants). (vfma): New (v8hf, v4hf variants). (vfms): New (v8hf, v4hf variants). (vsub): New (v8hf, v4hf variants). (vcage): New (v8hf, v4hf variants). (vcagt): New (v8hf, v4hf variants). (vcale): New (v8hf, v4hf variants). (vcalt): New (v8hf, v4hf variants). (vceq): New (v8hf, v4hf variants). (vcgt): New (v8hf, v4hf variants). (vcge): New (v8hf, v4hf variants). (vcle): New (v8hf, v4hf variants). (vclt): New (v8hf, v4hf variants). (vceqz): New (v8hf, v4hf variants). (vcgez): New (v8hf, v4hf variants). (vcgtz): New (v8hf, v4hf variants). (vcltz): New (v8hf, v4hf variants). (vclez): New (v8hf, v4hf variants). (vabd): New (v8hf, v4hf variants). (vmaxf): New (v8hf, v4hf variants). (vmaxnm): New (v8hf, v4hf variants). (vminf): New (v8hf, v4hf variants). (vminnm): New (v8hf, v4hf variants). (vpmaxf): New (v4hf variant). (vpminf): New (v4hf variant). (vpadd): New (v4hf variant). (vrecps): New (v8hf, v4hf variants). (vrsqrts): New (v8hf, v4hf variants). (vabs): New (v8hf, v4hf variants). (vneg): New (v8hf, v4hf variants). (vrecpe): New (v8hf, v4hf variants). (vrnd): New (v8hf, v4hf variants). (vrnda): New (v8hf, v4hf variants). (vrndm): New (v8hf, v4hf variants). (vrndn): New (v8hf, v4hf variants). (vrndp): New (v8hf, v4hf variants). (vrndx): New (v8hf, v4hf variants). (vrsqrte): New (v8hf, v4hf variants). (vmul_lane): Add v4hf and v8hf variants. (vmul_n): Add v4hf and v8hf variants. (vext): New (v8hf, v4hf variants). (vcvts): New (v8hi, v4hi variants). (vcvts): New (v8hf, v4hf variants). (vcvtu): New (v8hi, v4hi variants). (vcvtu): New (v8hf, v4hf variants). (vcvts_n): New (v8hf, v4hf variants). (vcvtu_n): New (v8hi, v4hi variants). (vcvts_n): New (v8hi, v4hi variants). (vcvtu_n): New (v8hf, v4hf variants). (vbsl): New (v8hf, v4hf variants). (vcvtas): New (v8hf, v4hf variants). (vcvtau): New (v8hf, v4hf variants). (vcvtms): New (v8hf, v4hf variants). (vcvtmu): New (v8hf, v4hf variants). (vcvtns): New (v8hf, v4hf variants). (vcvtnu): New (v8hf, v4hf variants). (vcvtps): New (v8hf, v4hf variants). (vcvtpu): New (v8hf, v4hf variants). gcc/ Backport from trunk r240423. 2016-09-23 Matthew Wahab * config.gcc (extra_headers): Add arm_fp16.h * config/arm/arm_fp16.h: New. * config/arm/arm_neon.h: Include "arm_fp16.h". gcc/ Backport from trunk r240424. 2016-09-23 Matthew Wahab * config/arm/arm_neon.h (vabd_f16): New. (vabdq_f16): New. (vabs_f16): New. (vabsq_f16): New. (vadd_f16): New. (vaddq_f16): New. (vcage_f16): New. (vcageq_f16): New. (vcagt_f16): New. (vcagtq_f16): New. (vcale_f16): New. (vcaleq_f16): New. (vcalt_f16): New. (vcaltq_f16): New. (vceq_f16): New. (vceqq_f16): New. (vceqz_f16): New. (vceqzq_f16): New. (vcge_f16): New. (vcgeq_f16): New. (vcgez_f16): New. (vcgezq_f16): New. (vcgt_f16): New. (vcgtq_f16): New. (vcgtz_f16): New. (vcgtzq_f16): New. (vcle_f16): New. (vcleq_f16): New. (vclez_f16): New. (vclezq_f16): New. (vclt_f16): New. (vcltq_f16): New. (vcltz_f16): New. (vcltzq_f16): New. (vcvt_f16_s16): New. (vcvt_f16_u16): New. (vcvt_s16_f16): New. (vcvt_u16_f16): New. (vcvtq_f16_s16): New. (vcvtq_f16_u16): New. (vcvtq_s16_f16): New. (vcvtq_u16_f16): New. (vcvta_s16_f16): New. (vcvta_u16_f16): New. (vcvtaq_s16_f16): New. (vcvtaq_u16_f16): New. (vcvtm_s16_f16): New. (vcvtm_u16_f16): New. (vcvtmq_s16_f16): New. (vcvtmq_u16_f16): New. (vcvtn_s16_f16): New. (vcvtn_u16_f16): New. (vcvtnq_s16_f16): New. (vcvtnq_u16_f16): New. (vcvtp_s16_f16): New. (vcvtp_u16_f16): New. (vcvtpq_s16_f16): New. (vcvtpq_u16_f16): New. (vcvt_n_f16_s16): New. (vcvt_n_f16_u16): New. (vcvtq_n_f16_s16): New. (vcvtq_n_f16_u16): New. (vcvt_n_s16_f16): New. (vcvt_n_u16_f16): New. (vcvtq_n_s16_f16): New. (vcvtq_n_u16_f16): New. (vfma_f16): New. (vfmaq_f16): New. (vfms_f16): New. (vfmsq_f16): New. (vmax_f16): New. (vmaxq_f16): New. (vmaxnm_f16): New. (vmaxnmq_f16): New. (vmin_f16): New. (vminq_f16): New. (vminnm_f16): New. (vminnmq_f16): New. (vmul_f16): New. (vmul_lane_f16): New. (vmul_n_f16): New. (vmulq_f16): New. (vmulq_lane_f16): New. (vmulq_n_f16): New. (vneg_f16): New. (vnegq_f16): New. (vpadd_f16): New. (vpmax_f16): New. (vpmin_f16): New. (vrecpe_f16): New. (vrecpeq_f16): New. (vrnd_f16): New. (vrndq_f16): New. (vrnda_f16): New. (vrndaq_f16): New. (vrndm_f16): New. (vrndmq_f16): New. (vrndn_f16): New. (vrndnq_f16): New. (vrndp_f16): New. (vrndpq_f16): New. (vrndx_f16): New. (vrndxq_f16): New. (vrsqrte_f16): New. (vrsqrteq_f16): New. (vrecps_f16): New. (vrecpsq_f16): New. (vrsqrts_f16): New. (vrsqrtsq_f16): New. (vsub_f16): New. (vsubq_f16): New. gcc/testsuite/ Backport from trunk r240425. 2016-09-23 Matthew Wahab * gcc.target/arm/armv8_2-fp16-neon-1.c: New. * gcc.target/arm/armv8_2-fp16-scalar-1.c: New. * gcc.target/arm/armv8_2-fp16-scalar-2.c: New. * gcc.target/arm/attr-fp16-arith-1.c: Add a test of intrinsics support. gcc/testsuite/ Backport from trunk r240426. 2016-09-23 Jiong Wang Matthew Wahab * gcc.target/aarch64/advsimd-intrinsics/binary_scalar_op.inc: New. * gcc.target/aarch64/advsimd-intrinsics/unary_scalar_op.inc: New. * gcc.target/aarch64/advsimd-intrinsics/ternary_scalar_op.inc: New. * gcc.target/aarch64/advsimd-intrinsics/vabsh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vaddh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtah_s32_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtah_u32_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_f16_s32_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_f16_u32_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_n_f16_s32_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_n_f16_u32_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_n_s32_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_n_u32_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_s32_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_u32_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtmh_s32_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtmh_u32_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtnh_s32_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtnh_u32_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtph_s32_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtph_u32_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vdivh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vfmah_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vfmsh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmaxnmh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vminnmh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmulh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vnegh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vrndah_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vrndh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vrndih_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vrndmh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vrndnh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vrndph_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vrndxh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vsqrth_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vsubh_f16_1.c: New. gcc/testsuite/ Backport from trunk r240427. 2016-09-23 Matthew Wahab * gcc.target/advsimd-intrinsics/advsimd-intrinsics.exp: Enable -march=armv8.2-a+fp16 when supported by the hardware. * gcc.target/aarch64/advsimd-intrinsics/binary_op_float.inc: New. * gcc.target/aarch64/advsimd-intrinsics/binary_op_no64.inc: Add F16 tests, enabled if macro HAS_FLOAT16_VARIANT is defined. Add semi-colons to a macro invocations. * gcc.target/aarch64/advsimd-intrinsics/cmp_fp_op.inc: Add F16 tests, enabled if macro __ARM_FEATURE_FP16_VECTOR_ARITHMETIC is defined. * gcc.target/aarch64/advsimd-intrinsics/cmp_op.inc: Likewise. * gcc.target/aarch64/advsimd-intrinsics/cmp_zero_op.inc: New. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vabd.c: Add F16 tests, enabled if macro __ARM_FEATURE_FP16_VECTOR_ARITHMETIC is defined. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vabs.c: Likewise. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vadd.c: Likewise. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vcage.c: Likewise. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vcagt.c: Likewise. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vcale.c: Likewise. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vcalt.c: Likewise. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vceq.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vceqz_1.c: New. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vcge.c: Add F16 tests, enabled if macro __ARM_FEATURE_FP16_VECTOR_ARITHMETIC is defined. * gcc.target/aarch64/advsimd-intrinsics/vcgez_1.c: New. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vcgt.c: Add F16 tests, enabled if macro __ARM_FEATURE_FP16_VECTOR_ARITHMETIC is defined. * gcc.target/aarch64/advsimd-intrinsics/vcgtz_1.c: New. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vcle.c: Add F16 tests, enabled if macro __ARM_FEATURE_FP16_VECTOR_ARITHMETIC is defined. * gcc.target/aarch64/advsimd-intrinsics/vclez_1.c: New. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vclt.c: Add F16 tests, enabled if macro __ARM_FEATURE_FP16_VECTOR_ARITHMETIC is defined. * gcc.target/aarch64/advsimd-intrinsics/vcltz_1.c: New. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vcvt.c: Add F16 tests, enabled if macro __ARM_FEATURE_FP16_VECTOR_ARITHMETIC is defined. Also fix some white-space. * gcc.target/aarch64/advsimd-intrinsics/vcvtX.inc: New. * gcc.target/aarch64/advsimd-intrinsics/vcvta_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtm_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtp_1.c: New. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vfma.c: Add F16 tests, enabled if macro __ARM_FEATURE_FP16_VECTOR_ARITHMETIC is defined. Also fix some long lines and white-space. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vfms.c: Add F16 tests, enabled if macro __ARM_FEATURE_FP16_VECTOR_ARITHMETIC is defined. Also fix some long lines and white-space. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vmax.c: Add F16 tests, enabled if macro __ARM_FEATURE_FP16_VECTOR_ARITHMETIC is defined. * gcc.target/aarch64/advsimd-intrinsics/vmaxnm_1.c: New. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vmin.c: Add F16 tests, enabled if macro __ARM_FEATURE_FP16_VECTOR_ARITHMETIC is defined. * gcc.target/aarch64/advsimd-intrinsics/vminnm_1.c: New. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vmul.c: Add F16 tests, enabled if macro __ARM_FEATURE_FP16_VECTOR_ARITHMETIC is defined. * gcc.target/aarch64/advsimd-intrinsics/vmul_lane.c: Likewise. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vmul_n.c: Likewise. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vneg.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vpXXX.inc: Likewise. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vpadd.c: Likewise. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vpmax.c: Likewise. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vpmin.c: Likewise. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vrecpe.c: Likewise. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vrecps.c: Likewise. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vrnd.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vrndX.inc: Likewise. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vrnda.c: Likewise. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vrndm.c: Likewise. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vrndn.c: Likewise. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vrndp.c: Likewise. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vrndx.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vrsqrte.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vrsqrts.c: Likewise. * gcc.target/gcc.target/aarch64/advsimd-intrinsics/vsub.c: Likewise. gcc/ Backport from trunk r240541. 2016-09-27 Matthew Wahab * config/arm/arm.md (*arm_movsi_insn): Add "arch" attribute. * config/arm/vfp.md (*arm_movhi_vfp): Likewise. (*thumb2_movhi_vfp): Likewise. (*arm_movhi_fp16): Remove predication operand from VMOV.F16 template. Expand predicable attribute to mark VMOV.F16 as not predicable. Add "arch" attribute. (*thumb2_movhi_fp16): Likewise. (*arm_movsi_vfp): Break a long line. Add "arch" attribute. (*thumb2_movsi_vfp): Add "arch" attribute. missing/ Backport from trunk r240542. gcc/testsuite/ Backport from trunk r240551. 2016-09-27 Jiong Wang * lib/target-supports.exp (check_effective_target_arm_v8_2a_fp16_scalar_hw): Delete redundant word in function comment. gcc/ Backport from trunk r240622. 2016-09-29 Matthew Wahab * config/arm/arm.md (*arm_movsi_insn): Replace "t2" arch attribute with "v6t2". Move "arch" attribute above "pool_range". * config/arm/vfp.md (*arm_movhi_vfp): Replace "t2" arch attribute with "v6t2". (*thumb2_movhi_vfp): Likewise. (*arm_movhi_fp16): Likewise. (*thumb2_movhi_fp16): Likewise. (*arm_movsi_vfp): Remove "arch" attribute. (*thumb2_movsi_vfp): Likewise. gcc/testsuite/ Backport from trunk r240921. 2016-10-10 Matthew Wahab Jiong Wang * target-supports.exp (add_options_for_arm_v8_2a_fp16_scalar): Mention AArch64 support. (add_options_for_arm_v8_2a_fp16_neon): Likewise. (check_effective_target_arm_v8_2a_fp16_scalar_ok_nocache): Support AArch64 targets. (check_effective_target_arm_v8_2a_fp16_neon_ok_nocache): Support AArch64 targets. (check_effective_target_arm_v8_2a_fp16_scalar_hw): Support AArch64 targets. (check_effective_target_arm_v8_2a_fp16_neon_hw): Likewise. 2016-10-10 Eric Botgazou gcc/testsuite/ Backport from trunk r240922. 2016-10-10 Jiong Wang * gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h (FP16_SUPPORTED): Enable AArch64. * gcc.target/aarch64/advsimd-intrinsics/vdup_lane.c: Add support for vdup*_laneq. * gcc.target/aarch64/advsimd-intrinsics/vduph_lane.c: New. * gcc.target/aarch64/advsimd-intrinsics/vtrn_half.c: New. * gcc.target/aarch64/advsimd-intrinsics/vuzp_half.c: New. * gcc.target/aarch64/advsimd-intrinsics/vzip_half.c: New. gcc/testsuite/ Backport from trunk r240923. 2016-10-10 Jiong Wang * gcc.target/aarch64/advsimd-intrinsics/vdiv_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vfmas_lane_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vfmas_n_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmaxnmv_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmaxv_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vminnmv_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vminv_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmul_lane_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmulx_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmulx_lane_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmulx_n_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vpminmaxnm_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vrndi_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vsqrt_f16_1.c: New. gcc/testsuite/ Backport from trunk r240924. 2016-10-10 Jiong Wang * gcc.target/aarch64/advsimd-intrinsics/unary_scalar_op.inc: Support FMT64. * gcc.target/aarch64/advsimd-intrinsics/vabdh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcageh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcagth_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcaleh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcalth_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vceqh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vceqzh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcgeh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcgezh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcgth_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcgtzh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcleh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vclezh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vclth_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcltzh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtah_s16_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtah_s64_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtah_u16_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtah_u64_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_f16_s16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_f16_s64_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_f16_u16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_f16_u64_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_n_f16_s16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_n_f16_s64_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_n_f16_u16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_n_f16_u64_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_n_s16_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_n_s64_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_n_u16_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_n_u64_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_s16_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_s64_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_u16_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_u64_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtmh_s16_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtmh_s64_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtmh_u16_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtmh_u64_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtnh_s16_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtnh_s64_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtnh_u16_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtnh_u64_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtph_s16_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtph_s64_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtph_u16_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtph_u64_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vfmash_lane_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmaxh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vminh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmulh_lane_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmulxh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmulxh_lane_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vrecpeh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vrecpsh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vrecpxh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vrsqrteh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vrsqrtsh_f16_1.c: New. 2016-10-15 Yvan Roux gcc/ Backport from trunk r240791. 2016-10-05 Kyrylo Tkachov * fold-const.c (native_encode_real): Fix logic for selecting offset to write to when BYTES_BIG_ENDIAN. 2016-10-15 Yvan Roux gcc/ Backport from trunk r240256. 2016-09-20 Tamar Christina * config/aarch64/arm_neon.h: Add gnu_inline and artificial attributes to all inlined functions and make them extern. gcc/ Backport from trunk r240271. 2016-09-20 Tamar Christina * config/aarch64/arm_neon.h (vst2_s64, vst2_u64, vst2_f64, vst2_s8): Add missing attributes. (vst3_s64, vst3_u64, vst3_f64, vst3_s8): Likewise. (vst4_s64, vst4_u64, vst4_f64, vst4_s8): Likewise. 2016-10-15 Yvan Roux gcc/ Backport from trunk r238000. 2016-07-05 Christophe Lyon * config/arm/neon-testgen.ml: Delete. * config/arm/neon.ml: Delete. gcc/testsuite/ Backport from trunk r238000. 2016-07-05 Christophe Lyon * gcc.target/arm/neon/polytypes.c: Move to ... * gcc.target/arm/polytypes.c: ... here. * gcc.target/arm/neon/pr51534.c: Move to ... * gcc.target/arm/pr51534.c: ... here. * gcc.target/arm/neon/vect-vcvt.c: Move to ... * gcc.target/arm/vect-vcvt.c: ... here. * gcc.target/arm/neon/vect-vcvtq.c: Move to ... * gcc.target/arm/vect-vcvtq.c: ... here. * gcc.target/arm/neon/vfp-shift-a2t2.c: Move to ... * gcc.target/arm/vfp-shift-a2t2.c: ... here. * gcc.target/arm/neon/vst1Q_laneu64-1.c: Move to ... * gcc.target/arm/vst1Q_laneu64-1.c: ... here. Fix foo() prototype. * gcc.target/arm/neon/neon.exp: Delete. * gcc.target/arm/neon/: Delete. gcc/testsuite/ Backport from trunk r238046. 2016-07-06 Wilco Dijkstra * gcc.target/arm/vst1Q_laneu64-1.c (foo): Use unsigned char*. 2016-10-14 Yvan Roux gcc/ Backport from trunk r237002. 2016-06-01 Thomas Preud'homme * doc/sourcebuild.texi (arm_acq_rel): Document new effective target. gcc/testsuite/ Backport from trunk r237002. 2016-06-01 Thomas Preud'homme * lib/target-supports.exp (check_effective_target_arm_acq_rel): New procedure. 2016-10-14 Yvan Roux gcc/ Backport from trunk r238079. 2016-07-07 Thomas Preud'homme * config/arm/elf.h: Use __ARM_ARCH_ISA_THUMB and __ARM_ARCH_ISA_ARM to decide whether to prevent some libgcc routines being included for some multilibs rather than __ARM_ARCH_6M__ and add comment to indicate the link between this condition and the one in libgcc/config/arm/lib1func.S. gcc/testsuite/ Backport from trunk r238079. 2016-07-07 Thomas Preud'homme * lib/target-supports.exp (check_effective_target_arm_cortex_m): Use __ARM_ARCH_ISA_ARM to test for Cortex-M devices. libgcc/ Backport from trunk r238079. 2016-07-07 Thomas Preud'homme * config/arm/bpabi-v6m.S: Clarify what architectures is the implementation suitable for. * config/arm/lib1funcs.S (__prefer_thumb__): Define among other cases for all Thumb-1 only targets. (NOT_ISA_TARGET_32BIT): Define for Thumb-1 only targets. (THUMB_LDIV0): Test for NOT_ISA_TARGET_32BIT rather than __ARM_ARCH_6M__. (EQUIV): Likewise. (ARM_FUNC_ALIAS): Likewise. (umodsi3): Add check to __ARM_ARCH_ISA_THUMB != 1 to guard the idiv version. (modsi3): Likewise. (clzsi2): Test for NOT_ISA_TARGET_32BIT rather than __ARM_ARCH_6M__. (clzdi2): Likewise. (ctzsi2): Likewise. (L_interwork_call_via_rX): Test for __ARM_ARCH_ISA_ARM rather than __ARM_ARCH_6M__ in guard for checking whether it is defined. (final includes): Test for NOT_ISA_TARGET_32BIT rather than __ARM_ARCH_6M__ and add comment to indicate the connection between this condition and the one in gcc/config/arm/elf.h. * config/arm/libunwind.S: Test for __ARM_ARCH_ISA_THUMB and __ARM_ARCH_ISA_ARM rather than __ARM_ARCH_6M__. * config/arm/t-softfp: Likewise. libgcc/ Backport from trunk r238080. 2016-07-07 Thomas Preud'homme * config/arm/lib1funcs.S (HAVE_ARM_CLZ): Define for ARMv6* or later and ARMv5t* rather than for a fixed list of architectures. gcc/ Backport from trunk r238081. 2016-07-07 Thomas Preud'homme * config/arm/arm-arches.def (armv8-m.base): Define new architecture. (armv8-m.main): Likewise. (armv8-m.main+dsp): Likewise. * config/arm/arm-protos.h (FL_FOR_ARCH8M_BASE): Define. (FL_FOR_ARCH8M_MAIN): Likewise. * config/arm/arm-tables.opt: Regenerate. * config/arm/bpabi.h: Add armv8-m.base, armv8-m.main and armv8-m.main+dsp to BE8_LINK_SPEC. * config/arm/arm.h (TARGET_HAVE_LDACQ): Exclude ARMv8-M. (enum base_architecture): Add BASE_ARCH_8M_BASE and BASE_ARCH_8M_MAIN. * config/arm/arm.c (arm_arch_name): Increase size to work with ARMv8-M Baseline and Mainline. (arm_option_override_internal): Also disable arm_restrict_it when !arm_arch_notm. Update comment for -munaligned-access to also cover ARMv8-M Baseline. (arm_file_start): Increase buffer size for printing architecture name. * doc/invoke.texi: Document architectures armv8-m.base, armv8-m.main and armv8-m.main+dsp. (mno-unaligned-access): Clarify that this is disabled by default for ARMv8-M Baseline architectures as well. gcc/testsuite/ Backport from trunk r238081. 2016-07-07 Thomas Preud'homme * lib/target-supports.exp: Generate add_options_for_arm_arch_FUNC and check_effective_target_arm_arch_FUNC_multilib for ARMv8-M Baseline and ARMv8-M Mainline architectures. libgcc/ Backport from trunk r238081. 2016-07-07 Thomas Preud'homme * config/arm/lib1funcs.S (__ARM_ARCH__): Define to 8 for ARMv8-M. gcc/ Backport from trunk r238082. 2016-07-07 Thomas Preud'homme * config/arm/arm-protos.h: Reindent FL_FOR_* macro definitions. gcc/ Backport from trunk r238083. 2016-07-07 Thomas Preud'homme * config/arm/arm.h (TARGET_USE_MOVT): Check MOVT/MOVW availability with TARGET_HAVE_MOVT. (TARGET_HAVE_MOVT): Define. * config/arm/arm.c (const_ok_for_op): Check MOVT/MOVW availability with TARGET_HAVE_MOVT. * config/arm/arm.md (arm_movt): Use TARGET_HAVE_MOVT to check MOVT availability. (addsi splitter): Use TARGET_THUMB && TARGET_HAVE_MOVT rather than TARGET_THUMB2. (symbol_refs movsi splitter): Remove TARGET_32BIT check. (arm_movtas_ze): Use TARGET_HAVE_MOVT to check MOVT availability. * config/arm/constraints.md (define_constraint "j"): Use TARGET_HAVE_MOVT to check MOVT availability. gcc/ Backport from trunk r238288. 2016-07-13 Thomas Preud'homme * config/arm/arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT. * config/arm/arm.c (arm_arch_name): (const_ok_for_op): Check MOVT/MOVW availability with TARGET_HAVE_MOVT. (thumb_legitimate_constant_p): Strip the high part of a label_ref. (thumb1_rtx_costs): Also return 0 if setting a half word constant and MOVW is available and replace (unsigned HOST_WIDE_INT) INTVAL by UINTVAL. (thumb1_size_rtx_costs): Make set of half word constant also cost 1 extra instruction if MOVW is available. Use a cost variable incremented by COSTS_N_INSNS (1) when the condition match rather than returning an arithmetic expression based on COSTS_N_INSNS. Make constant with bottom half word zero cost 2 instruction if MOVW is available. * config/arm/arm.md (define_attr "arch"): Add v8mb. (define_attr "arch_enabled"): Set to yes if arch value is v8mb and target is ARMv8-M Baseline. (arm_movt): New unpredicable alternative for ARMv8-M Baseline. (arm_movtas_ze): Likewise. * config/arm/thumb1.md (thumb1_movdi_insn): Add ARMv8-M Baseline only alternative for constants satisfying j constraint. (thumb1_movsi_insn): Likewise. (movsi splitter for K alternative): Tighten condition to not trigger if movt is available and j constraint is satisfied. (Pe immediate splitter): Likewise. (thumb1_movhi_insn): Add ARMv8-M Baseline only alternative for constant fitting in an halfword to use MOVW. * doc/sourcebuild.texi (arm_thumb1_movt_ok): Document new ARM effective target. gcc/testsuite/ Backport from trunk r238288. 2016-07-13 Thomas Preud'homme * lib/target-supports.exp (check_effective_target_arm_thumb1_movt_ok): Define effective target. * gcc.target/arm/pr42574.c: Require arm_thumb1_ok and !arm_thumb1_movt_ok to exclude ARMv8-M Baseline. * gcc.target/arm/movhi_movw.c: New test. * gcc.target/arm/movsi_movw.c: Likewise. * gcc.target/arm/movdi_movw.c: Likewise. gcc/ Backport from trunk r238289. 2016-07-13 Thomas Preud'homme * config/arm/arm.h (TARGET_HAVE_CBZ): Define. (TARGET_IDIV): Set for all Thumb targets provided they have hardware divide feature. * config/arm/arm.md (divsi3): New unpredicable alternative for ARMv8-M Baseline. Make initial alternative TARGET_32BIT only. (udivsi3): Likewise. * config/arm/thumb1.md (thumb1_cbz): New define_insn. * doc/sourcebuild.texi (arm_thumb1_cbz_ok): Document new effective target. gcc/testsuite/ Backport from trunk r238289. 2016-07-13 Thomas Preud'homme * lib/target-supports.exp (check_effective_target_arm_thumb1_cbz_ok): Add new arm_thumb1_cbz_ok effective target. * gcc.target/arm/cbz.c: New test. gcc/testsuite/ Backport from trunk r238331. 2016-07-14 Thomas Preud'homme * gcc.target/arm/pr42574.c: Add missing target keyword for the dg-do selector and enclose boolean expression in curly braces. gcc/ Backport from trunk r238348. 2016-07-14 Thomas Preud'homme * config/arm/arm.h (TARGET_HAVE_LDACQ): Enable for ARMv8-M Mainline. (TARGET_HAVE_LDACQD): New macro. * config/arm/sync.md (atomic_loaddi): Use TARGET_HAVE_LDACQD rather than TARGET_HAVE_LDACQ. (arm_load_acquire_exclusivedi): Likewise. (arm_store_release_exclusivedi): Likewise. gcc/testsuite/ Backport from trunk r238348. 2016-07-14 Thomas Preud'homme * gcc.target/arm/atomic-comp-swap-release-acquire.c: Rename into ... * gcc.target/arm/atomic-comp-swap-release-acquire-1.c: This. * gcc.target/arm/atomic-op-acq_rel.c: Rename into ... * gcc.target/arm/atomic-op-acq_rel-1.c: This. * gcc.target/arm/atomic-op-acquire.c: Rename into ... * gcc.target/arm/atomic-op-acquire-1.c: This. * gcc.target/arm/atomic-op-char.c: Rename into ... * gcc.target/arm/atomic-op-char-1.c: This. * gcc.target/arm/atomic-op-consume.c: Rename into ... * gcc.target/arm/atomic-op-consume-1.c: This. * gcc.target/arm/atomic-op-int.c: Rename into ... * gcc.target/arm/atomic-op-int-1.c: This. * gcc.target/arm/atomic-op-relaxed.c: Rename into ... * gcc.target/arm/atomic-op-relaxed-1.c: This. * gcc.target/arm/atomic-op-release.c: Rename into ... * gcc.target/arm/atomic-op-release-1.c: This. * gcc.target/arm/atomic-op-seq_cst.c: Rename into ... * gcc.target/arm/atomic-op-seq_cst-1.c: This. * gcc.target/arm/atomic-op-short.c: Rename into ... * gcc.target/arm/atomic-op-short-1.c: This. * gcc.target/arm/atomic-comp-swap-release-acquire-2.c: New test. * gcc.target/arm/atomic-op-acq_rel-2.c: Likewise. * gcc.target/arm/atomic-op-acquire-2.c: Likewise. * gcc.target/arm/atomic-op-char-2.c: Likewise. * gcc.target/arm/atomic-op-consume-2.c: Likewise. * gcc.target/arm/atomic-op-int-2.c: Likewise. * gcc.target/arm/atomic-op-relaxed-2.c: Likewise. * gcc.target/arm/atomic-op-release-2.c: Likewise. * gcc.target/arm/atomic-op-seq_cst-2.c: Likewise. * gcc.target/arm/atomic-op-short-2.c: Likewise. gcc/ Backport from trunk r239888. 2016-08-31 Eric Botcazou * config/arm/arm.c (thumb1_size_rtx_costs) : Add missing guard. gcc/testsuite/ Backport from trunk r241086. 2016-10-13 Thomas Preud'homme * gcc.target/arm/movhi_movw.c: Enable test for ARM mode. * gcc.target/arm/movsi_movw.c: Likewise. * gcc.target/arm/movdi_movw.c: Likewise and adapt scan-assembler directive to work on big endian targets. 2016-10-14 Yvan Roux gcc/ Backport from trunk r237857. 2016-06-29 Jim Wilson * config/aarch64/aarch64-cores.def (qdf24xx): Use qdf24xx tuning. * config/aarch64/aarch64.c (qdf24xx_addrcost_table, qdf24xx_regmove_cost, qdf24xx_tunings): New. * config/arm/aarch64-cost-tables.h (qdf24xx_extra_costs): New. * config/arm/arm-cores.def (qdf24xx): Use qdf24xx tuning. * config/arm/arm.c (arm_qdf24xx_tune): New. gcc/testsuite/ Backport from trunk r237857. 2016-06-29 Jim Wilson * gcc.dg/asr_div1.c: Add aarch64 specific dg-options. 2016-09-15 Yvan Roux gcc/ Backport from trunk r238977. 2016-08-02 Tamar Christina * config/aarch64/aarch64-simd-builtins.def (__builtin_aarch64_fmindf): Change BUILTIN_VDQF to BUILTIN_VDQF_DF. (__builtin_aarch64_fmaxdf): Likewise. (__builtin_aarch64_smin_nandf): Likewise. (__builtin_aarch64_smax_nandf): Likewise. * config/aarch64/aarch64-simd.md (3): Remove. * config/aarch64/aarch64.md (3): Rename to... (3): ...this. * config/aarch64/arm_neon.h (vmaxnm_f64): New. (vminnm_f64): Likewise. (vmin_f64): Likewise. (vmax_f64): Likewise. * config/aarch64/iterators.md (FMAXMIN): Merge with... (FMAXMIN_UNS): ...this. (fmaxmin): Merged with (fmaxmin_op): ...this... (maxmin_uns_op): ...in to this. gcc/testsuite/ Backport from trunk r238977. 2016-08-02 Tamar Christina * gcc.target/aarch64/vminmaxnm.c: New. * gcc.target/aarch64/simd/vminmaxnm_1.c (main): Add float64x1_t tests. gcc/ Backport from trunk r238989. 2016-02-08 James Greenhalgh * config/aarch64/arm_neon.h (vminnm_f64): Add back missing 'f' from __builtin_aarch64_fmindf. 2016-09-15 Yvan Roux gcc/ Backport from trunk r240102. 2016-09-12 Andrew Pinski * config/aarch64/aarch64-tuning-flags.def (SLOW_UNALIGNED_LDPW): New tuning option. * config/aarch64/aarch64.c (thunderx_tunings): Enable AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW. (aarch64_operands_ok_for_ldpstp): Return false if AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW and the mode was SImode and the alignment is less than 8 byte. (aarch64_operands_adjust_ok_for_ldpstp): Likewise. gcc/testsuite/ Backport from trunk r240102. 2016-09-12 Andrew Pinski * gcc.target/aarch64/thunderxloadpair.c: New testcase. * gcc.target/aarch64/thunderxnoloadpair.c: New testcase. 2016-09-15 Yvan Roux libgcc/ Backport from trunk r240033. 2016-09-07 Joseph Myers PR libgcc/77519 * libgcc2.c (NOTRUNC): Invert settings. 2016-09-15 Yvan Roux gcc/ Backport from trunk r239212. 2016-08-08 Prathamesh Kulkarni * tree-ssa-ccp.c (extend_mask): New param sgn. Remove ORing with wi::mask. (get_default_value): Adjust call to extend_mask to pass sign. (evaluate_stmt): Likewise. 2016-09-15 Yvan Roux libgcc/ Backport from trunk r240043. 2016-09-09 James Greenhalgh PR target/63250 * Makefile.in (lib2funcs): Build _mulhc3 and _divhc3. * libgcc2.h (LIBGCC_HAS_HF_MODE): Conditionally define. (HFtype): Likewise. (HCtype): Likewise. (__divhc3): Likewise. (__mulhc3): Likewise. * libgcc2.c: Support _mulhc3 and _divhc3. 2016-09-14 Yvan Roux gcc/ Backport from trunk r238588. 2016-07-21 Prathamesh Kulkarni * tree-ssa-strlen.c (strlen_dom_walker::before_dom_children): Fix typo in comment. 2016-09-14 Yvan Roux gcc/ Backport from trunk r237475. 2016-06-15 Kyrylo Tkachov * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart register subregs in SET_SRC. gcc/testsuite/ Backport from trunk r237475. 2016-06-15 Kyrylo Tkachov * gcc.target/aarch64/ifcvt_multiple_sets_subreg_1.c: New test. 2016-09-07 Yvan Roux gcc/ * LINARO-VERSION: Bump version number, post snapshot. 2016-09-07 Yvan Roux Make Linaro GCC Snapshot 6.2-2016.09. gcc/ * LINARO-VERSION: Update. 2016-09-07 Yvan Roux gcc/testsuite/ Backport from trunk r239609. 2016-08-19 Prathamesh Kulkarni * gcc.dg/cpp/warn-undef.c: Append "evaluates to 0" to dg-error. * gcc.dg/cpp/warn-undef-2.c: Likewise. libcpp/ Backport from trunk r239609. 2016-08-19 Prathamesh Kulkarni * expr.c (eval_token): Append "evaluates to 0" to Wundef diagnostic. 2016-09-07 Yvan Roux gcc/ Backport from trunk r236632. 2016-05-24 Richard Sandiford * tree-vect-stmts.c (vectorizable_load): Reorder checks so that load_lanes/grouped_load classification comes first. Don't check whether the vectorization factor is a multiple of the group size for load_lanes. gcc/testsuite/ Backport from trunk r236632. 2016-05-24 Richard Sandiford * gcc.dg/vect/vect-load-lanes-peeling-1.c: New test. 2016-09-07 Yvan Roux gcc/ Backport from trunk r239528. 2016-08-17 Thomas Preud'homme * config/arm/t-aprofile (MULTILIB_EXCEPTIONS): Rewrite into ... (MULTILIB_REQUIRED): This by specifying multilib needing to be built rather than those that should not be built. 2016-09-07 Yvan Roux gcc/ Backport from trunk r238960. 2016-08-01 Wilco Dijkstra * config/aarch64/aarch64.h (aarch64_frame): Remove padding0 and hardfp_offset. Add locals_offset, initial_adjust, callee_adjust, callee_offset and final_adjust. * config/aarch64/aarch64.c (aarch64_layout_frame): Remove unused padding0 and hardfp_offset initializations. Choose frame layout and set frame variables accordingly. Use INVALID_REGNUM instead of FIRST_PSEUDO_REGISTER. (aarch64_push_regs): Use INVALID_REGNUM, not FIRST_PSEUDO_REGISTER. (aarch64_pop_regs): Likewise. (aarch64_expand_prologue): Remove all decision code, just emit prolog according to frame variables. (aarch64_expand_epilogue): Remove all decision code, just emit epilog according to frame variables. (aarch64_initial_elimination_offset): Use offset to local/arg area. gcc/testsuite/ Backport from trunk r238960. 2016-08-01 Wilco Dijkstra * gcc.target/aarch64/test_frame_10.c: Fix test to check for a single stack adjustment, no writeback. * gcc.target/aarch64/test_frame_12.c: Likewise. * gcc.target/aarch64/test_frame_13.c: Likewise. * gcc.target/aarch64/test_frame_15.c: Likewise. * gcc.target/aarch64/test_frame_6.c: Likewise. * gcc.target/aarch64/test_frame_7.c: Likewise. * gcc.target/aarch64/test_frame_8.c: Likewise. * gcc.target/aarch64/test_frame_16.c: New test. 2016-09-07 Yvan Roux gcc/ Backport from trunk r238346. 2016-07-14 Thomas Preud'homme PR rtl-optimization/71878 * lra-constraints.c (match_reload): Pass information about other output operands. Create new unique register value if matching input operand shares same register value as output operand being considered. (curr_insn_transform): Record output operands already processed. 2016-09-07 Yvan Roux gcc/ Backport from trunk r239859. 2016-08-30 Szabolcs Nagy * config.gcc (*-*-*musl*): Disable gnu-indirect-function. gcc/ Backport from trunk r239860. 2016-08-30 Szabolcs Nagy * config/linux.c (linux_libc_has_function): Return true on musl. 2016-09-07 Yvan Roux gcc/ Backport from trunk r239637. 2016-08-20 Kugan Vivekanandarajah PR tree-optimization/61839 * tree-vrp.c (two_valued_val_range_p): New. (simplify_stmt_using_ranges): Convert CST BINOP VAR where VAR is two-valued to VAR == VAL1 ? (CST BINOP VAL1) : (CST BINOP VAL2). Also Convert VAR BINOP CST where VAR is two-valued to VAR == VAL1 ? (VAL1 BINOP CST) : (VAL2 BINOP CST). gcc/testsuite/ Backport from trunk r239637. 2016-08-20 Kugan Vivekanandarajah PR tree-optimization/61839 * gcc.dg/tree-ssa/pr61839_1.c: New test. * gcc.dg/tree-ssa/pr61839_2.c: New test. * gcc.dg/tree-ssa/pr61839_3.c: New test. * gcc.dg/tree-ssa/pr61839_4.c: New test. 2016-09-07 Yvan Roux gcc/ Backport from trunk r239162. 2016-08-05 Kugan Vivekanandarajah * tree-vrp.c (extract_range_basic): Check cfun->after_inlining before folding call to __builtin_constant_p with parameters to false. 2016-09-07 Yvan Roux gcc/ Backport from trunk r239118. 2016-08-04 Kugan Vivekanandarajah * tree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before accessing SSA_NAME_PTR_INFO. 2016-09-07 Yvan Roux gcc/ Backport from trunk r238846. 2016-07-29 Kugan Vivekanandarajah PR middle-end/68217 * tree-vrp.c (extract_range_from_binary_expr_1): In case of signed & sign-bit-CST, generate [-INF, 0] instead of [-INF, INF]. gcc/testsuite/ Backport from trunk r238846. 2016-07-29 Kugan Vivekanandarajah PR middle-end/68217 * gcc.dg/pr68217.c: New test. 2016-09-07 Yvan Roux gcc/ Backport from trunk r238337. 2016-07-14 Kyrylo Tkachov * expmed.c (mult_variant, choose_mult_variant): Move declaration to... * expmed.h: ... Here. gcc/ Backport from trunk r238340. 2016-07-14 Kyrylo Tkachov PR target/65951 PR tree-optimization/70923 * tree-vect-patterns.c: Include mult-synthesis.h. (target_supports_mult_synth_alg): New function. (synth_lshift_by_additions): Likewise. (apply_binop_and_append_stmt): Likewise. (vect_synth_mult_by_constant): Likewise. (target_has_vecop_for_code): Likewise. (vect_recog_mult_pattern): Use above functions to synthesize vector multiplication by integer constants. gcc/testsuite/ Backport from trunk r238340. 2016-07-14 Kyrylo Tkachov PR target/65951 PR tree-optimization/70923 * gcc.dg/vect/vect-mult-const-pattern-1.c: New test. * gcc.dg/vect/vect-mult-const-pattern-2.c: Likewise. * gcc.dg/vect/pr65951.c: Likewise. * gcc.dg/vect/vect-iv-9.c: Remove ! vect_int_mult-specific scan. 2016-09-07 Yvan Roux gcc/ Backport from trunk r238254, r238763. 2016-07-12 Nathan Sidwell * config/arm/arm.c (arm_option_override): Set MASK_SINGLE_PIC_BASE when -mno-pic-data-is-text-relative is in effect, by default. * doc/invoke.texi (mpic-data-is-text-relative): Document new behavior and clarify. gcc/testsuite/ Backport from trunk r238254, r238763. 2016-07-12 Nathan Sidwell * gcc.target/arm/data-rel-1.c: New. * gcc.target/arm/data-rel-2.c: New. * gcc.target/arm/data-rel-3.c: New. 2016-09-07 Yvan Roux gcc/ Backport from trunk r238248. 2016-07-12 Kyrylo Tkachov PR middle-end/71700 * expr.c (store_constructor): Mask sign-extended bits when widening sub-word constructor element at the start of a word. gcc/testsuite/ Backport from trunk r238248. 2016-07-12 Kyrylo Tkachov PR middle-end/71700 * gcc.c-torture/execute/pr71700.c: New test. 2016-09-07 Yvan Roux gcc/ Backport from trunk r238013. 2016-07-05 Kyrylo Tkachov PR rtl-optimization/71594 * ifcvt.c (noce_convert_multiple_sets): Wrap new_val or old_val into subregs of appropriate mode before trying to emit a conditional move. gcc/testsuite/ Backport from trunk r238013. 2016-07-05 Kyrylo Tkachov PR rtl-optimization/71594 * gcc.dg/torture/pr71594.c: New test. 2016-09-07 Yvan Roux libstdc++-v3/ Backport from trunk r237879. 2016-06-30 Thomas Preud'homme * testsuite/29_atomics/atomic/65913.cc: Require atomic-builtins rather than specific target. 2016-09-07 Yvan Roux gcc/ Backport from trunk r237250. 2016-06-09 Kyrylo Tkachov * ifcvt.c (struct noce_if_info): Add transform_name field. (noce_try_move): Set if_info->transform_name to the function name. (noce_try_ifelse_collapse): Likewise. (noce_try_store_flag): Likewise. (noce_try_inverse_constants): Likewise. (noce_try_store_flag_constants): Likewise. (noce_try_addcc): Likewise. (noce_try_store_flag_mask): Likewise. (noce_try_cmove): Likewise. (noce_try_cmove_arith): Likewise. (noce_try_minmax): Likewise. (noce_try_abs): Likewise. (noce_try_sign_mask): Likewise. (noce_try_bitop): Likewise. (noce_convert_multiple_sets): Likewise. (noce_process_if_block): Print if_info->transform_name to dump_file if transformation succeeded. 2016-09-07 Yvan Roux gcc/ Backport from trunk r239960. 2016-09-02 Prathamesh Kulkarni * cfg.c (free_original_copy_tables): Replace second assignment of bb_copy = NULL by bb_original = NULL. 2016-09-07 Yvan Roux libstdc++-v3/ Backport from trunk r239955. 2016-09-02 Maxim Kuvyrkov * acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Check for presence of setrlimit on both native and cross targets. * configure: Regenerate. 2016-09-07 Yvan Roux gcc/ Backport from trunk r239923. 2016-09-01 Wilco Dijkstra * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement): New function. (TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define. 2016-09-07 Yvan Roux gcc/ Backport from trunk r239919. 2016-09-01 Kyrylo Tkachov * config/aarch64/aarch64.md (*ands_compare0): New pattern. * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_NZmode for comparisons of integer ZERO_EXTEND against zero. gcc/testsuite/ Backport from trunk r239919. 2016-09-01 Kyrylo Tkachov * gcc.target/aarch64/ands_3.c: New test. 2016-09-07 Yvan Roux gcc/ Backport from trunk r239865. 2016-08-30 Tamar Christina * gcc/config/aarch64/aarch64-simd.md (aarch64_ld2_dreg_le): New. (aarch64_ld2_dreg_be): New. (aarch64_ld2_dreg): Removed. (aarch64_ld3_dreg_le): New. (aarch64_ld3_dreg_be): New. (aarch64_ld3_dreg): Removed. (aarch64_ld4_dreg_le): New. (aarch64_ld4_dreg_be): New. (aarch64_ld4_dreg): Removed. (aarch64_ld): Wrapper around _le, _be. 2016-09-07 Yvan Roux gcc/ Backport from trunk r239739. 2016-08-24 Michael Collison Michael Collison * config/arm/arm-modes.def: Add new condition code mode CC_V to represent the overflow bit. * config/arm/arm.c (maybe_get_arm_condition_code): Add support for CC_Vmode. (arm_gen_unlikely_cbranch): New function to generate common rtl conditional branches for overflow patterns. * config/arm/arm-protos.h: Add prototype for arm_gen_unlikely_cbranch. * config/arm/arm.md (addv4, add3_compareV, addsi3_compareV_upper): New patterns to support signed builtin overflow add operations. (uaddv4, add3_compareC, addsi3_compareV_upper): New patterns to support unsigned builtin add overflow operations. (subv4, sub3_compare1): New patterns to support signed builtin overflow subtract operations, (usubv4): New patterns to support unsigned builtin subtract overflow operations. (negvsi3, negvdi3, negdi2_compare, negsi2_carryin_compare): New patterns to support builtin overflow negate operations. gcc/testsuite/ Backport from trunk r239739. 2016-08-24 Michael Collison Michael Collison * gcc.target/arm/builtin_saddl.c: New testcase. * gcc.target/arm/builtin_saddll.c: New testcase. * gcc.target/arm/builtin_uaddl.c: New testcase. * gcc.target/arm/builtin_uaddll.c: New testcase. * gcc.target/arm/builtin_ssubl.c: New testcase. * gcc.target/arm/builtin_ssubll.c: New testcase. * gcc.target/arm/builtin_usubl.c: New testcase. * gcc.target/arm/builtin_usubll.c: New testcase. 2016-09-07 Yvan Roux gcc/ Backport from trunk r237988. 2016-07-04 Jiong Wang * config/aarch64/aarch64.h: Rename "ARMv8.1" to "ARMv8.1-A". * config/aarch64/aarch64_neon.h: Likewise. * config/aarch64/arm_neon.h: Likewise. * config/aarch64/atomics.md: Likewise. * config/aarch64/aarch64-simd-builtins.def: Likewise. * doc/invoke.texi: Likewise. 2016-09-07 Yvan Roux gcc/testsuite/ Backport from trunk r237798. 2016-06-27 Christophe Lyon * gcc.target/aarch64/advsimd-intrinsics/vget_lane.c: Add ifdef around fp16 code. * gcc.target/aarch64/advsimd-intrinsics/vreinterpret.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p128.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p64.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vstX_lane.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vld2_lane_f16_indices_1.c: Add arm_neon_fp16_ok effective target. * gcc.target/aarch64/advsimd-intrinsics/vld2q_lane_f16_indices_1.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vld3_lane_f16_indices_1.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vld3q_lane_f16_indices_1.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vld4_lane_f16_indices_1.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vld4q_lane_f16_indices_1.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vst2_lane_f16_indices_1.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vst2q_lane_f16_indices_1.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vst3_lane_f16_indices_1.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vst3q_lane_f16_indices_1.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vst4_lane_f16_indices_1.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vst4q_lane_f16_indices_1.c: Likewise. 2016-09-07 Yvan Roux gcc/testsuite/ Backport from trunk r237987. 2016-07-04 Christophe Lyon * c-c++-common/asan/clone-test-1.c (main): Handle clone() failure. 2016-09-07 Yvan Roux gcc/ Backport from trunk r238818. 2016-07-28 Wilco Dijkstra * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg): Rename. (aarch64_push_reg): New function to push 1 or 2 registers. (aarch64_pop_reg): New function to pop 1 or 2 registers. (aarch64_expand_prologue): Use aarch64_push_regs. (aarch64_expand_epilogue): Use aarch64_pop_regs. 2016-09-07 Yvan Roux gcc/ Backport from trunk r239772. 2016-08-26 Kyrylo Tkachov PR target/70473 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_muld): Reduce reservation duration to 15 cycles. (cortex_a8_vfp_macs): Likewise. (cortex_a8_vfp_macd): Likewise. (cortex_a8_vfp_divs): Likewise. (cortex_a8_vfp_divd): Likewise. 2016-09-07 Yvan Roux gcc/ Backport from trunk r239771. 2016-08-26 Kyrylo Tkachov * config/arm/arm.c (arm_sets_movw_movt_fusible_p): New function. (aarch_macro_fusion_pair_p): Use above to avoid early return. 2016-09-07 Yvan Roux gcc/ Backport from trunk r238712. 2016-07-25 Jiong Wang * config/aarch64/aarch64.c (aarch64_add_constant): New parameter "mode". Use aarch64_internal_mov_immediate instead of aarch64_build_constant. (aarch64_output_mi_thunk): Pass Pmode when calling aarch64_add_constant. (aarch64_build_constant): Delete. gcc/ Backport from trunk r238713. 2016-07-25 Jiong Wang * config/aarch64/aarch64.c (aarch64_add_constant): Optimize instruction sequences. gcc/ Backport from trunk r238714. 2016-07-25 Jiong Wang * config/aarch64/aarch64.c (aarch64_add_constant): New parameter "frame_related_p". Generate CFA annotation when it's necessary. (aarch64_expand_prologue): Use aarch64_add_constant. (aarch64_expand_epilogue): Likewise. (aarch64_output_mi_thunk): Pass "false" when calling aarch64_add_constant. 2016-09-07 Yvan Roux libgcc/ Backport from trunk r238584. 2016-07-21 Aurelien Jarno PR target/59833 * config/arm/ieee754-df.S (extendsfdf2): Convert sNaN to qNaN. 2016-09-07 Yvan Roux gcc/ Backport from trunk r238010. 2016-07-05 Jiong Wang * lra-constraints.c (process_alt_operands): Don't add spilling cost for "offmemok". 2016-09-07 Yvan Roux gcc/ Backport from trunk r237882. 2016-06-30 James Greenhalgh Kyrylo Tkachov * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane): New define_insn. (*aarch64_simd_vec_copy_lane_): Likewise. gcc/testsuite/ Backport from trunk r237882. 2016-06-30 James Greenhalgh Kyrylo Tkachov * gcc.target/aarch64/vget_set_lane_1.c: New test. gcc/ Backport from trunk r237883. 2016-06-30 Kyrylo Tkachov James Greenhalgh * config/aarch64/arm_neon.h (vcopyq_lane_f32, vcopyq_lane_f64, vcopyq_lane_p8, vcopyq_lane_p16, vcopyq_lane_s8, vcopyq_lane_s16, vcopyq_lane_s32, vcopyq_lane_s64, vcopyq_lane_u8, vcopyq_lane_u16, vcopyq_lane_u32, vcopyq_lane_u64): Reimplement in C. (vcopy_lane_f32, vcopy_lane_f64, vcopy_lane_p8, vcopy_lane_p16, vcopy_lane_s8, vcopy_lane_s16, vcopy_lane_s32, vcopy_lane_s64, vcopy_lane_u8, vcopy_lane_u16, vcopy_lane_u32, vcopy_lane_u64, vcopy_laneq_f32, vcopy_laneq_f64, vcopy_laneq_p8, vcopy_laneq_p16, vcopy_laneq_s8, vcopy_laneq_s16, vcopy_laneq_s32, vcopy_laneq_s64, vcopy_laneq_u8, vcopy_laneq_u16, vcopy_laneq_u32, vcopy_laneq_u64, vcopyq_laneq_f32, vcopyq_laneq_f64, vcopyq_laneq_p8, vcopyq_laneq_p16, vcopyq_laneq_s8, vcopyq_laneq_s16, vcopyq_laneq_s32, vcopyq_laneq_s64, vcopyq_laneq_u8, vcopyq_laneq_u16, vcopyq_laneq_u32, vcopyq_laneq_u64): New intrinsics. gcc/testsuite/ Backport from trunk r237883. 2016-06-30 Kyrylo Tkachov James Greenhalgh * gcc.target/aarch64/vect_copy_lane_1.c: New test. 2016-09-07 Christophe Lyon gcc/ Backport from trunk r237956. 2016-07-04 Matthew Wahab Jiong Wang * config/aarch64/aarch64-arches.def: Add "armv8.2-a". * config/aarch64/aarch64.h (AARCH64_FL_V8_2): New. (AARCH64_FL_F16): New. (AARCH64_FL_FOR_ARCH8_2): New. (AARCH64_ISA_8_2): New. (AARCH64_ISA_F16): New. (TARGET_FP_F16INST): New. (TARGET_SIMD_F16INST): New. * config/aarch64/aarch64-option-extensions.def ("fp16"): New entry. ("fp"): Disabling "fp" also disables "fp16". * config/aarch64/aarch64-c.c (arch64_update_cpp_builtins): Conditionally define __ARM_FEATURE_FP16_SCALAR_ARITHMETIC and __ARM_FEATURE_FP16_VECTOR_ARITHMETIC. * doc/invoke.texi (AArch64 Options): Document "armv8.2-a" and "fp16". gcc/ Backport from trunk r238715. 2016-07-25 Jiong Wang * config/aarch64/aarch64-simd.md (aarch64_): Use VALL_F16. (aarch64_ext): Likewise. (aarch64_rev): Likewise. * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev): Support V4HFmode and V8HFmode. * config/aarch64/arm_neon.h (__INTERLEAVE_LIST): Support float16x4_t, float16x8_t. (__aarch64_vdup_lane_f16, __aarch64_vdup_laneq_f16, __aarch64_vdupq_lane_f16, __aarch64_vdupq_laneq_f16, vbsl_f16, vbslq_f16, vdup_n_f16, vdupq_n_f16, vdup_lane_f16, vdup_laneq_f16, vdupq_lane_f16, vdupq_laneq_f16, vduph_lane_f16, vduph_laneq_f16, vext_f16, vextq_f16, vmov_n_f16, vmovq_n_f16, vrev64_f16, vrev64q_f16, vtrn1_f16, vtrn1q_f16, vtrn2_f16, vtrn2q_f16, vtrn_f16, vtrnq_f16, vuzp1_f16, vuzp1q_f16, vuzp2_f16, vuzp2q_f16, vzip1_f16, vzip2q_f16): New. (vmov_n_f16): Reimplement using vdup_n_f16. (vmovq_n_f16): Reimplement using vdupq_n_f16. gcc/ Backport from trunk r238716. 2016-07-25 Jiong Wang * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New. * config/aarch64/aarch64-simd-builtins.def: Register new builtins. * config/aarch64/aarch64-simd.md (aarch64_rsqrte): Extend to HF modes. (neg2): Likewise. (abs2): Likewise. (2): Likewise. (l2): Likewise. (2): Likewise. (2): Likewise. (ftrunc2): Likewise. (2): Likewise. (sqrt2): Likewise. (*sqrt2): Likewise. (aarch64_frecpe): Likewise. (aarch64_cm): Likewise. * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Return false for HF, V4HF and V8HF. * config/aarch64/iterators.md (VHSDF, VHSDF_DF, VHSDF_SDF): New. (VDQF_COND, fcvt_target, FCVT_TARGET, hcon): Extend mode attribute to HF modes. (stype): New. * config/aarch64/arm_neon.h (vdup_n_f16): New. (vdupq_n_f16): Likewise. (vld1_dup_f16): Use vdup_n_f16. (vld1q_dup_f16): Use vdupq_n_f16. (vabs_f16, vabsq_f16, vceqz_f16, vceqzq_f16, vcgez_f16, vcgezq_f16, vcgtz_f16, vcgtzq_f16, vclez_f16, vclezq_f16, vcltz_f16, vcltzq_f16, vcvt_f16_s16, vcvtq_f16_s16, vcvt_f16_u16, vcvtq_f16_u16, vcvt_s16_f16, vcvtq_s16_f16, vcvt_u16_f16, vcvtq_u16_f16, vcvta_s16_f16, vcvtaq_s16_f16, vcvta_u16_f16, vcvtaq_u16_f16, vcvtm_s16_f16, vcvtmq_s16_f16, vcvtm_u16_f16, vcvtmq_u16_f16, vcvtn_s16_f16, vcvtnq_s16_f16, vcvtn_u16_f16, vcvtnq_u16_f16, vcvtp_s16_f16, vcvtpq_s16_f16, vcvtp_u16_f16, vcvtpq_u16_f16, vneg_f16, vnegq_f16, vrecpe_f16, vrecpeq_f16, vrnd_f16, vrndq_f16, vrnda_f16, vrndaq_f16, vrndi_f16, vrndiq_f16, vrndm_f16, vrndmq_f16, vrndn_f16, vrndnq_f16, vrndp_f16, vrndpq_f16, vrndx_f16, vrndxq_f16, vrsqrte_f16, vrsqrteq_f16, vsqrt_f16, vsqrtq_f16): New. gcc/ Backport from trunk r238717. 2016-07-25 Jiong Wang * config/aarch64/aarch64-simd-builtins.def: Register new builtins. * config/aarch64/aarch64-simd.md (aarch64_rsqrts): Extend to HF modes. (fabd3): Likewise. (3): Likewise. (3): Likewise. (aarch64_p): Likewise. (3): Likewise. (3): Likewise. (3): Likewise. (aarch64_faddp): Likewise. (aarch64_fmulx): Likewise. (aarch64_frecps): Likewise. (*aarch64_fac): Rename to aarch64_fac. (add3): Extend to HF modes. (sub3): Likewise. (mul3): Likewise. (div3): Likewise. (*div3): Likewise. * config/aarch64/aarch64.c (aarch64_emit_approx_div): Return false for HF, V4HF and V8HF. * config/aarch64/iterators.md (VDQ_HSDI, VSDQ_HSDI): New mode iterator. * config/aarch64/arm_neon.h (vadd_f16, vaddq_f16, vabd_f16, vabdq_f16, vcage_f16, vcageq_f16, vcagt_f16, vcagtq_f16, vcale_f16, vcaleq_f16, vcalt_f16, vcaltq_f16, vceq_f16, vceqq_f16, vcge_f16, vcgeq_f16, vcgt_f16, vcgtq_f16, vcle_f16, vcleq_f16, vclt_f16, vcltq_f16, vcvt_n_f16_s16, vcvtq_n_f16_s16, vcvt_n_f16_u16, vcvtq_n_f16_u16, vcvt_n_s16_f16, vcvtq_n_s16_f16, vcvt_n_u16_f16, vcvtq_n_u16_f16, vdiv_f16, vdivq_f16, vdup_lane_f16, vdup_laneq_f16, vdupq_lane_f16, vdupq_laneq_f16, vdups_lane_f16, vdups_laneq_f16, vmax_f16, vmaxq_f16, vmaxnm_f16, vmaxnmq_f16, vmin_f16, vminq_f16, vminnm_f16, vminnmq_f16, vmul_f16, vmulq_f16, vmulx_f16, vmulxq_f16, vpadd_f16, vpaddq_f16, vpmax_f16, vpmaxq_f16, vpmaxnm_f16, vpmaxnmq_f16, vpmin_f16, vpminq_f16, vpminnm_f16, vpminnmq_f16, vrecps_f16, vrecpsq_f16, vrsqrts_f16, vrsqrtsq_f16, vsub_f16, vsubq_f16): New. gcc/ Backport from trunk r238718. 2016-07-25 Jiong Wang * config/aarch64/aarch64-simd-builtins.def: Register new builtins. * config/aarch64/aarch64-simd.md (fma4, fnma4): Extend to HF modes. * config/aarch64/arm_neon.h (vfma_f16, vfmaq_f16, vfms_f16, vfmsq_f16): New. gcc/ Backport from trunk r238719. 2016-07-25 Jiong Wang * config/aarch64/aarch64-simd.md (*aarch64_mulx_elt_to_64v2df): Rename to "*aarch64_mulx_elt_from_dup". (*aarch64_mul3_elt): Update schedule type. (*aarch64_mul3_elt_from_dup): Likewise. (*aarch64_fma4_elt_from_dup): Likewise. (*aarch64_fnma4_elt_from_dup): Likewise. * config/aarch64/iterators.md (VMUL): Supprt half precision float modes. (f, fp): Support HF modes. * config/aarch64/arm_neon.h (vfma_lane_f16, vfmaq_lane_f16, vfma_laneq_f16, vfmaq_laneq_f16, vfma_n_f16, vfmaq_n_f16, vfms_lane_f16, vfmsq_lane_f16, vfms_laneq_f16, vfmsq_laneq_f16, vfms_n_f16, vfmsq_n_f16, vmul_lane_f16, vmulq_lane_f16, vmul_laneq_f16, vmulq_laneq_f16, vmul_n_f16, vmulq_n_f16, vmulx_lane_f16, vmulxq_lane_f16, vmulx_laneq_f16, vmulxq_laneq_f16): New. gcc/ Backport from trunk r238721. 2016-07-25 Jiong Wang * config/aarch64/aarch64-simd-builtins.def (reduc_smax_scal_, reduc_smin_scal_): Use VDQIF_F16. (reduc_smax_nan_scal_, reduc_smin_nan_scal_): Use VHSDF. * config/aarch64/aarch64-simd.md (reduc__scal_): Use VHSDF. (aarch64_reduc__internal): Likewise. * config/aarch64/iterators.md (VDQIF_F16): New. (vp): Support HF modes. * config/aarch64/arm_neon.h (vmaxv_f16, vmaxvq_f16, vminv_f16, vminvq_f16, vmaxnmv_f16, vmaxnmvq_f16, vminnmv_f16, vminnmvq_f16): New. gcc/ Backport from trunk r238722. 2016-07-25 Jiong Wang * config.gcc (aarch64*-*-*): Install arm_fp16.h. * config/aarch64/aarch64-builtins.c (hi_UP): New. * config/aarch64/aarch64-simd-builtins.def: Register new builtins. * config/aarch64/aarch64-simd.md (aarch64_frsqrte): Extend to HF mode. (aarch64_frecp): Likewise. (aarch64_cm): Likewise. * config/aarch64/aarch64.md (2): Likewise. (l2): Likewise. (fix_trunc2): Likewise. (sqrt2): Likewise. (*sqrt2): Likewise. (abs2): Likewise. (hf2): New pattern for HF mode. (hihf2): Likewise. * config/aarch64/arm_neon.h: Include arm_fp16.h. * config/aarch64/iterators.md (GPF_F16, GPI_F16, VHSDF_HSDF): New. (w1, w2, v, s, q, Vmtype, V_cmp_result, fcvt_iesize, FCVT_IESIZE): Support HF mode. * config/aarch64/arm_fp16.h: New file. (vabsh_f16, vceqzh_f16, vcgezh_f16, vcgtzh_f16, vclezh_f16, vcltzh_f16, vcvth_f16_s16, vcvth_f16_s32, vcvth_f16_s64, vcvth_f16_u16, vcvth_f16_u32, vcvth_f16_u64, vcvth_s16_f16, vcvth_s32_f16, vcvth_s64_f16, vcvth_u16_f16, vcvth_u32_f16, vcvth_u64_f16, vcvtah_s16_f16, vcvtah_s32_f16, vcvtah_s64_f16, vcvtah_u16_f16, vcvtah_u32_f16, vcvtah_u64_f16, vcvtmh_s16_f16, vcvtmh_s32_f16, vcvtmh_s64_f16, vcvtmh_u16_f16, vcvtmh_u32_f16, vcvtmh_u64_f16, vcvtnh_s16_f16, vcvtnh_s32_f16, vcvtnh_s64_f16, vcvtnh_u16_f16, vcvtnh_u32_f16, vcvtnh_u64_f16, vcvtph_s16_f16, vcvtph_s32_f16, vcvtph_s64_f16, vcvtph_u16_f16, vcvtph_u32_f16, vcvtph_u64_f16, vnegh_f16, vrecpeh_f16, vrecpxh_f16, vrndh_f16, vrndah_f16, vrndih_f16, vrndmh_f16, vrndnh_f16, vrndph_f16, vrndxh_f16, vrsqrteh_f16, vsqrth_f16): New. gcc/ Backport from trunk r238723. 2016-07-25 Jiong Wang * config/aarch64/aarch64-simd-builtins.def: Register new builtins. * config/aarch64/aarch64.md (hf3): New. (hf3): Likewise. (add3): Likewise. (sub3): Likewise. (mul3): Likewise. (div3): Likewise. (*div3): Likewise. (3): Extend to HF. * config/aarch64/aarch64-simd.md (aarch64_rsqrts): Likewise. (fabd3): Likewise. (3): Likewise. (3): Likewise. (aarch64_fmulx): Likewise. (aarch64_fac): Likewise. (aarch64_frecps): Likewise. (hfhi3): New. (hihf3): Likewise. * config/aarch64/iterators.md (VHSDF_SDF): Delete. (VSDQ_HSDI): Support HI. (fcvt_target, FCVT_TARGET): Likewise. * config/aarch64/arm_fp16.h (vaddh_f16, vsubh_f16, vabdh_f16, vcageh_f16, vcagth_f16, vcaleh_f16, vcalth_f16, vceqh_f16, vcgeh_f16, vcgth_f16, vcleh_f16, vclth_f16, vcvth_n_f16_s16, vcvth_n_f16_s32, vcvth_n_f16_s64, vcvth_n_f16_u16, vcvth_n_f16_u32, vcvth_n_f16_u64, vcvth_n_s16_f16, vcvth_n_s32_f16, vcvth_n_s64_f16, vcvth_n_u16_f16, vcvth_n_u32_f16, vcvth_n_u64_f16, vdivh_f16, vmaxh_f16, vmaxnmh_f16, vminh_f16, vminnmh_f16, vmulh_f16, vmulxh_f16, vrecpsh_f16, vrsqrtsh_f16): New. gcc/ Backport from trunk r238724. 2016-07-25 Jiong Wang * config/aarch64/aarch64-simd-builtins.def: Register new builtins. * config/aarch64/aarch64.md (fma, fnma): Support HF. * config/aarch64/arm_fp16.h (vfmah_f16, vfmsh_f16): New. gcc/ Backport from trunk r238725. 2016-07-25 Jiong Wang * config/aarch64/arm_neon.h (vfmah_lane_f16, vfmah_laneq_f16, vfmsh_lane_f16, vfmsh_laneq_f16, vmulh_lane_f16, vmulh_laneq_f16, vmulxh_lane_f16, vmulxh_laneq_f16): New. 2016-09-07 Yvan Roux gcc/ Backport from trunk r237906. 2016-07-01 Kyrylo Tkachov * config/arm/arm.c (thumb_reload_in_hi): Delete. * config/arm/arm-protos.h (thumb_reload_in_hi): Delete prototype. 2016-09-07 Yvan Roux gcc/ Backport from trunk r237851. 2016-06-29 Wilco Dijkstra * config/aarch64/aarch64.c (cortexa53_tunings): Increase loop alignment to 8. Set function alignment to 16. (cortexa35_tunings): Likewise. (cortexa57_tunings): Increase loop alignment to 8. (cortexa72_tunings): Likewise. (cortexa73_tunings): Likewise. 2016-09-07 Yvan Roux gcc/ Backport from trunk r237705. 2016-06-22 Andreas Schwab * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section): Remove declaration. 2016-09-07 Yvan Roux gcc/ Backport from trunk r237607. 2016-06-20 Wilco Dijkstra * config/aarch64/aarch64.opt (mpc-relative-literal-loads): Rename internal option name. * config/aarch64/aarch64.c (aarch64_nopcrelative_literal_loads): Rename to aarch64_pcrelative_literal_loads. (aarch64_expand_mov_immediate): Likewise. (aarch64_secondary_reload): Likewise. (aarch64_can_use_per_function_literal_pools_p): Likewise. (aarch64_override_options_after_change_1): Rename and simplify logic. (aarch64_classify_symbol): Merge large model checks into switch, remove pc-relative load check. 2016-09-07 Yvan Roux gcc/ Backport from trunk r237277. 2016-06-09 Vladimir Makarov Jiong Wang PR rtl-optimization/70751 * lra-constraints.c (process_alt_operands): Recognize Non-pseudo spilled into memory. 2016-09-07 Christophe Lyon gcc/ Backport from trunk r239610. 2016-08-19 Matthew Wahab PR target/77281 * config/arm/arm.c (neon_valid_immediate): Delete declaration. Use const_vec_duplicate to check for duplicated elements. 2016-09-07 Yvan Roux gcc/ Backport from trunk r237884. 2016-06-30 Wilco Dijkstra * config/aarch64/aarch64.c (cortexa35_tunings): Enable AES fusion. Use cortexa57_branch_cost. (cortexa53_tunings): Use cortexa57_branch_cost. (cortexa72_tunings): Use cortexa57_branch_cost. Use AUTOPREFETCHER_WEAK. (cortexa73_tunings): Use cortexa57_branch_cost. 2016-09-07 Yvan Roux gcc/ Backport from trunk r237597. 2016-06-20 Wilco Dijkstra * config/aarch64/aarch64.c (aarch64_modes_tieable_p): Allow scalar/single vector modes to be tieable. 2016-09-07 Yvan Roux gcc/testsuite/ Backport from trunk r237557. 2016-06-17 Christophe Lyon * lib/target-supports.exp (check_effective_target_arm_neon_fp16_ok_nocache): Call arm_neon_ok and merge flags. Fix temporary test name. (check_effective_target_arm_neonv2_ok_nocache): Call arm_neon_ok and merge flags. 2016-09-07 Yvan Roux gcc/ Backport from trunk r237548. 2016-06-17 Szabolcs Nagy * config/aarch64/geniterators.sh: Handle parenthesised conditions. 2016-09-07 Yvan Roux gcc/ Backport from trunk r237506. 2016-06-16 Renlin Li * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo. 2016-09-07 Yvan Roux gcc/ Backport from trunk r237485. 2016-06-15 Kyrylo Tkachov * config/aarch64/aarch64-simd.md (aarch64_shll_n): Clean up parentheses. Use GET_MODE_UNIT_BITSIZE. (aarch64_shll2_n): Likewise. 2016-09-07 Yvan Roux gcc/ Backport from trunk r237440. 2015-06-14 Kyrylo Tkachov * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p): New function. (aarch64_rtx_costs): Use it. Rewrite CONST_INT_P (op1) case to handle mask+shift version. * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p): New prototype. * config/aarch64/aarch64.md (*andim_ashift_bfiz): Replace matching condition with aarch64_mask_and_shift_for_ubfiz_p. 2016-09-07 Yvan Roux gcc/ Backport from trunk r237331. 2016-06-11 Jiong Wang PR target/71061 * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration. * config/arm/arm.c (arm_attr_length_pop_multi): New function to return length for pop patterns. (arm_attr_length_push_multi): Update comments. * config/arm/arm.md (*load_multiple_with_writeback): Set "length" attribute. (*pop_multiple_with_writeback_and_return): Likewise. (*pop_multiple_with_return): Likewise. 2016-09-07 Yvan Roux gcc/ Backport from trunk r237313. 2016-06-10 Bernd Edlinger * config/arm/arm.h (pool_vector_label, return_used_this_function): Remove. 2016-09-07 Yvan Roux gcc/ Backport from trunk r237251. 2016-06-09 Stefan Bruens * doc/invoke.texi (ARM Options): Use lexicographical ordering. Correct usage of @samp vs @option, add @samp where appropriate. Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312. Add armv6s-m and document it, as it is no official ARM name. 2016-09-07 Christophe Lyon gcc/ Backport from trunk r239733. 2016-08-24 Thomas Preud'homme * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping for -mcpu=cortex-a7, -mfpu=neon-fp16, -mfpu=fpv5-d16 and -mfpu=fp-armv8. Fix typo in -mfpu=vfpv3-d16-fp16 mapping. (MULTILIB_REUSE): Remove reuse rules for option set including -mfpu=fp-armv8 and -mfpu=vfpv4 gcc/ Backport from trunk r239734. 2016-08-24 Thomas Preud'homme * doc/fragments.texi (MULTILIB_REUSE): Mention that only options in MULTILIB_OPTIONS should be used. Small wording fixes. * genmultilib: Memorize set of all option combinations in combination_space. Detect if RHS of MULTILIB_REUSE uses an option not found in MULTILIB_OPTIONS by checking if option set is listed in combination_space. Output new and existing error message to stderr. 2016-09-07 Yvan Roux gcc/ Backport from trunk r236914. 2016-05-31 Wladimir J. van der Laan * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious attribute __unused__. 2016-09-07 Christophe Lyon gcc/ Backport from trunk r239710. 2016-08-23 Christophe Lyon * config/arm/arm.md (arm_movqi_insn): Swap predicable_short_it attribute for alternatives 3 and 4. 2016-09-07 Christophe Lyon gcc/ Backport from trunk r239561. 2016-08-18 Tamar Christina Ramana Radhakrishnan * varasm.c (default_use_anchors_for_symbol_p): Reject too large decls. 2016-09-07 Christophe Lyon gcc/ Backport from trunk r236269. 2016-05-16 Matthew Wahab Ramana Radhakrishnan Jiong Wang * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE. Define __ARM_FP16_ARGS when appropriate. * config/arm/arm.c (arm_invalid_parameter_type): Remove declaration. (arm_invalid_return_type): Likewise. (TARGET_INVALID_PARAMETER_TYPE): Remove. (TARGET_INVALID_RETURN_TYPE): Remove. (aapcs_vfp_sub_candidate): Allow HFmode. (aapcs_vfp_allocate): Add comment. Support HFmode. (aapcs_vfp_allocate_return_reg): Likewise. (struct aapcs_cp_arg_layout): Slightly reword comments for is_return_candidate and allocate_return_reg. (output_mov_vfp): Update assert. (arm_hard_regno_mode_ok): Remove comment, update HF-mode condition. (arm_invalid_parameter_type): Remove. (amr_invalid_return_type): Remove. * config/arm/arm.h (TARGET_NEON_FP16): Fix definition. * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP. * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP. gcc/testsuite/ Backport from trunk r236269. 2016-05-16 Matthew Wahab * g++.dg/ext/arm-fp16/fp16-param-1.c: Update expected output. Add test for __ARM_FP16_ARGS. * g++.dg/ext/arm-fp16/fp16-return-1.c: Update expected output. * gcc.target/arm/aapcs/neon-vect10.c: New. * gcc.target/arm/aapcs/neon-vect9.c: New. * gcc.target/arm/aapcs/vfp18.c: New. * gcc.target/arm/aapcs/vfp19.c: New. * gcc.target/arm/aapcs/vfp20.c: New. * gcc.target/arm/aapcs/vfp21.c: New. * gcc.target/arm/fp16-aapcs-1.c: New. * g++.target/arm/fp16-param-1.c: Update expected output. Add test for __ARM_FP16_ARGS. * g++.target/arm/fp16-return-1.c: Update expected output. gcc/ Backport from trunk r237847. 2016-06-29 Matthew Wahab * doc/sourcebuild.texi (Effective-Target keywords): Add entries for arm_fp16_ok and arm_fp16_hw. (Add Options): Add entries for arm_fp16, arm_fp16_ieee and arm_fp16_alternative. gcc/testsuite/ Backport from trunk r237847. 2016-06-29 Matthew Wahab * lib/target-supports.exp (add_options_for_arm_fp16): Reword comment. (add_options_for_arm_fp16_ieee): New. (add_options_for_arm_fp16_alternative): New. (effective_target_arm_fp16_ok_nocache): Add to comment. Fix a long-line. (effective_target_arm_fp16_hw): New. gcc/testsuite/ Backport from trunk r237849. 2016-06-29 Matthew Wahab * gcc.target/arm/aapcs/neon-vect10.c: Require -mfloat-ab=hard. Replace arm_neon_fp16_ok with arm_neon_fp16_hw. * gcc.target/arm/aapcs/neon-vect9.c: Likewise. * gcc.target/arm/aapcs/vfp18.c: Likewise. * gcc.target/arm/aapcs/vfp19.c: Likewise. * gcc.target/arm/aapcs/vfp20.c: Likewise. * gcc.target/arm/aapcs/vfp21.c: Likewise. * gcc.target/arm/fp16-aapcs-1.c: Require -mfloat-ab=hard. Also simplify the test. * gcc.target/arm/fp16-aapcs-2.c: New. 2016-09-07 Christophe Lyon gcc/ Backport from trunk r235512. 2016-04-27 Kyrylo Tkachov * rtlanal.c (nonzero_bits1): Convert preprocessor check for WORD_REGISTER_OPERATIONS to runtime check. gcc/ Backport from trunk r235563. 2015-04-28 Kyrylo Tkachov * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0 and explain why in a comment. 2016-09-07 Christophe Lyon gcc/ Backport from trunk r239135. 2016-08-04 Andrew Pinski * config/aarch64/aarch64.c (thunderx_vector_cost): New variable. (thunderx_tunings): Use thunderx_vector_cost instead of generic_vector_cost. 2016-09-07 Christophe Lyon gcc/ Backport from trunk r238955. 2015-08-01 Alan Hayward PR tree-optimization/71818 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Don't advance IVs with non invariant evolutions gcc/testsuite/ Backport from trunk r238955. 2015-08-01 Alan Hayward PR tree-optimization/71818 * gcc.dg/vect/pr71818.c: New 2016-09-07 Christophe Lyon gcc/ Backport from trunk r239300. 2016-08-09 Renlin Li PR middle-end/64971 * calls.c (prepare_call_address): Convert funexp to Pmode when necessary. * config/aarch64/aarch64.md (sibcall): Remove fix for PR 64971. (sibcall_value): Likewise. 2016-09-07 Christophe Lyon gcc/ Backport from trunk r238938. 2016-08-01 Kyrylo Tkachov * config/aarch64/aarch64.c (aarch64_classify_address): Use DImode when performing aarch64_offset_7bit_signed_scaled_p check for TImode LDP/STP addresses. gcc/testsuite/ Backport from trunk r238938. 2016-08-01 Kyrylo Tkachov * gcc.target/aarch64/ldp_stp_unaligned_1.c: New test. 2016-09-07 Christophe Lyon gcc/ Backport from trunk r238820. 2016-07-28 Kristina Martsenko * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix cost of zero extend. gcc/ Backport from trunk r238821. 2016-07-28 Wilco Dijkstra * config/aarch64/aarch64.md (zero_extend2_aarch64): Change output statement and type. (qihi2_aarch64): Likewise, and split into two. (extendqihi2_aarch64): New. (zero_extendqihi2_aarch64): New. * config/aarch64/iterators.md (ldrxt): Remove. * config/aarch64/aarch64.c (aarch64_rtx_costs): Change cost of uxtb/uxth. 2016-07-28 Kristina Martsenko 2016-09-07 Christophe Lyon gcc/ Backport from trunk r238056. 2016-07-06 Kyrylo Tkachov * config/arm/driver-arm.c (arm_cpu_table): Add entries for cortex-a32, cortex-a35, cortex-a53, cortex-a57, cortex-a72, cortex-a73. 2016-09-07 Christophe Lyon gcc/ Backport from trunk r237957. 2016-07-04 Ramana Radhakrishnan PR target/63874 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix typo in comment. Only force to memory if it is a weak external reference. gcc/testsuite/ Backport from trunk r237957. 2016-07-04 Ramana Radhakrishnan PR target/63874 * gcc.target/aarch64/pr63874.c: New test. 2016-09-07 Christophe Lyon gcc/testsuite/ Backport from trunk r237653. 2016-06-21 Wilco Dijkstra * gcc.target/aarch64/advsimd-intrinsics/vrnd.c (dg-require-effective-target): Use arm_v8_neon_hw. * gcc.target/aarch64/advsimd-intrinsics/vrnda.c (dg-require-effective-target): Likewise. * gcc.target/aarch64/advsimd-intrinsics/vrndm.c (dg-require-effective-target): Likewise. * gcc.target/aarch64/advsimd-intrinsics/vrndn.c (dg-require-effective-target): Likewise. * gcc.target/aarch64/advsimd-intrinsics/vrndp.c (dg-require-effective-target): Likewise. * gcc.target/aarch64/advsimd-intrinsics/vrndx.c (dg-require-effective-target): Likewise. * lib/target-supports.exp (check_runtime arm_v8_neon_hw_available): Add AArch64 check. 2016-09-07 Christophe Lyon gcc/ Backport from trunk r237604. 2016-06-20 James Greenhalgh * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP costs relative to the cost of a register move. gcc/ Backport from trunk r238048. 2016-07-06 Wilco Dijkstra * config/arm/cortex-a53.md: Use final_presence_set for in-order. (cortex_a53_shift): Add mov_shift. (cortex_a53_shift_reg): Add new reservation for register shifts. (cortex_a53_alu): Remove bfm. (cortex_a53_alu_shift): Add bfm, remove mov_shift. (cortex_a53_alu_extr): Add new reservation for EXTR. (bypasses): Improve bypass modelling. 2016-09-07 Christophe Lyon gcc/ Backport from trunk r237603. 2016-06-20 James Greenhalgh * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New. (vcvt_n_f64_u64): Likewise. (vcvt_n_s64_f64): Likewise. (vcvt_n_u64_f64): Likewise. (vcvt_f64_s64): Likewise. (vrecpe_f64): Likewise. (vcvt_f64_u64): Likewise. (vrecps_f64): Likewise. gcc/testsuite/ Backport from trunk r237603. 2016-06-20 James Greenhalgh * gcc.target/aarch64/vcvt_f64_1.c: New. * gcc.target/aarch64/vcvt_n_f64_1.c: New. * gcc.target/aarch64/vrecp_f64_1.c: New. 2016-09-07 Christophe Lyon gcc/ Backport from trunk r237249. 2016-06-09 Kyrylo Tkachov * config/arm/cortex-a57.md (cortex_a57_alu): Handle csel type. gcc/ Backport from trunk r237595. 2016-06-20 Wilco Dijkstra * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel. gcc/ Backport from trunk r237601. 2016-06-20 James Greenhalgh * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP costs relative to the cost of a register move. 2016-09-07 Christophe Lyon gcc/ Backport from trunk r236817. 2016-05-27 Wilco Dijkstra PR67609 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove. * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Remove function. * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class): Remove. 2016-09-07 Christophe Lyon gcc/ Backport from trunk r236638. 2016-05-24 Kyrylo Tkachov * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT with HOST_WIDE_INT_1. (insv): Likewise. * config/arm/arm.c (optimal_immediate_sequence): Replace cast of 1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U. (arm_canonicalize_comparison): Likewise. (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with HOST_WIDE_INT_1. (thumb1_size_rtx_costs): Likewise. (vfp_const_double_index): Replace cast of 1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U. (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with HOST_WIDE_INT_1. (arm_asan_shadow_offset): Replace cast of 1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U. * config/arm/neon.md (vec_set): Replace cast of 1 to HOST_WIDE_INT with HOST_WIDE_INT_1. gcc/ Backport from trunk r236640. 2016-05-24 Kyrylo Tkachov * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of operands[2] against 1 with comparison against CONST1_RTX. (ashrdi3): Likewise. (lshrdi3): Likewise. (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL. (ashrsi3): Likewise. (lshrsi3): Likewise. (rotrsi3): Likewise. (define_split above *compareqi_eq0): Likewise. (define_split above "prologue"): Likewise. * config/arm/arm.c (thumb1_size_rtx_costs): Likewise. * config/arm/predicates.md (shift_operator): Likewise. (shift_nomul_operator): Likewise. (sat_shift_operator): Likewise. (thumb1_cmp_operand): Likewise. (const_neon_scalar_shift_amount_operand): Replace manual range check with IN_RANGE. * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL. gcc/ Backport from trunk r236641. 2016-05-24 Kyrylo Tkachov * config/arm/neon.md (ashldi3_neon): Replace comparison of INTVAL of operands[2] against 1 with comparison against CONST1_RTX. (di3_neon): Likewise. * config/arm/predicates.md (const0_operand): Replace with comparison against CONST0_RTX. gcc/ Backport from trunk r237757. 2016-06-24 Kyrylo Tkachov * config/arm/arm.c (int_log2): Delete definition and prototype. (shift_op): Use exact_log2 instead of int_log2. (vfp3_const_double_for_fract_bits): Likewise. 2016-09-07 Christophe Lyon gcc/ Backport from trunk r236631. 2016-05-24 Richard Sandiford * tree-vect-data-refs.c (vect_analyze_group_access_1): Set GROUP_GAP for single-element interleaving. * tree-vect-stmts.c (vectorizable_load): Remove force_peeling variable. 2016-09-07 Christophe Lyon gcc/ Backport from trunk r236593. 2016-05-23 Bin Cheng * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when TMR_INDEX is non-NULL. 2016-09-07 Christophe Lyon gcc/ Backport from trunk r236502. 2016-05-20 Prathamesh Kulkarni * tree-vectorizer.c (get_vec_alignment_for_decl): New static function. (get_vec_alignment_for_array_decl): Likewise. (get_vec_alignment_for_record_decl): Likewise. (increase_alignment::execute): Move code to find alignment to get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl. (type_align_map): New hash_map. gcc/testsuite/ Backport from trunk r236502, r236503. 2016-05-20 Prathamesh Kulkarni * gcc.dg/vect/section-anchors-vect-70.c: New test-case. * gcc.dg/vect/section-anchors-vect-71.c: Likewise. * gcc.dg/vect/section-anchors-vect-72.c: Likewise. gcc/testsuite/ Backport from trunk r237207. 2016-06-08 Prathamesh Kulkarni * gcc.dg/vect/section-anchors-vect-70.c: Rename to aligned-section-anchors-vect-71.c. * gcc.dg/vect/section-anchors-vect-71.c: Rename to aligned-section-anchors-vect-72.c. * gcc.dg/vect/section-anchors-vect-72.c: Rename to aligned-section-anchors-vect-72.c. 2016-09-07 Christophe Lyon gcc/ Backport from trunk r236355. 2016-05-17 Kugan Vivekanandarajah * config/aarch64/aarch64.c (all_extensions): Removed unused static variable. 2016-09-07 Christophe Lyon gcc/ Backport from trunk r236198. 2016-05-13 Ramana Radhakrishnan PR target/53440 * config/arm/arm.c (arm32_output_mi_thunk): New. (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework to split Thumb1 vs TARGET_32BIT functionality. (arm_thumb1_mi_thunk): New. gcc/testsuite/ Backport from trunk r236198. 2016-05-13 Ramana Radhakrishnan PR target/53440 * g++.dg/inherit/thunk1.C: Support arm / aarch64. gcc/testsuite/ Backport from trunk r236319. 2016-05-17 Christophe Lyon * g++.dg/inherit/think1.C: Fix dg-do and dg-skip order. 2016-09-07 Christophe Lyon gcc/ Backport from trunk r237679. 2016-06-22 Kyrylo Tkachov * config/aarch64/aarch64.c (cortexa73_tunings): New struct. * config/aarch64/aarch64-cores.def (cortex-a73): New entry. (cortex-a73.cortex-a35): Likewise. (cortex-a73.cortex-a53): Likewise. * config/aarch64/aarch64-tune.md: Regenerate. * doc/invoke.texi (AArch64 Options): Document cortex-a73, cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to -mcpu and -mtune. gcc/ Backport from trunk r237681. 2016-06-22 Kyrylo Tkachov * config/arm/arm.c (arm_cortex_a73_tune): New struct. * config/arm/arm-cores.def (cortex-a73): New entry. (cortex-a73.cortex-a35): Likewise. (cortex-a73.cortex-a53): Likewise. * config/arm/arm-tables.opt: Regenerate. * config/arm/arm-tune.md: Likewise. * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73, mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53. * config/arm/t-aprofile: Handle mcpu=cortex-a73, mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53. * doc/invoke.texi (ARM Options): Document cortex-a73, cortex-a73.cortex-a35 and cortex-a73.cortex-a53. 2016-08-25 Christophe Lyon gcc/ Backport from trunk r237553. 2016-06-17 James Greenhalgh * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with __FAST_MATH__. (vaddq_f32): Likewise. (vmul_f32): Likewise. (vmulq_f32): Likewise. (vsub_f32): Likewise. (vsubq_f32): Likewise. 2016-08-25 Christophe Lyon gcc/ Backport from trunk r237138. 2016-06-06 Kyrylo Tkachov PR middle-end/37780 * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split. gcc/ Backport from trunk r237139. * config/aarch64/aarch64.md (ctz2): Convert to define_insn_and_split. 2016-06-06 Kyrylo Tkachov PR middle-end/37780 gcc/ Backport from trunk r237141. * ifcvt.c (noce_try_ifelse_collapse): New function. Declare prototype. (noce_process_if_block): Call noce_try_ifelse_collapse. * simplify-rtx.c (simplify_cond_clz_ctz): New function. (simplify_ternary_operation): Use the above to simplify conditional CLZ/CTZ expressions. 2016-06-06 Kyrylo Tkachov PR middle-end/37780 gcc/testsuite/ Backport from trunk r237141. 2016-06-06 Kyrylo Tkachov PR middle-end/37780 * gcc.c-torture/execute/pr37780.c: New test. * gcc.target/aarch64/pr37780_1.c: Likewise. * gcc.target/arm/pr37780_1.c: Likewise. gcc/ Backport from trunk r237180. 2016-06-07 Kyrylo Tkachov * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable. gcc/testsuite/ Backport from trunk r237308. 2016-06-10 Christophe Lyon * gcc.target/arm/pr37780_1.c: Use arm_arch_v6t2 effective target and options. 2016-08-25 Christophe Lyon gcc/ Backport from trunk r237034. 2016-06-02 Kyrylo Tkachov PR rtl-optimization/71295 * rtlanal.c (subreg_get_info): If taking a subreg at the requested offset would go over the size of the inner mode reject it. gcc/testsuite/ Backport from trunk r237034. 2016-06-02 Kyrylo Tkachov PR rtl-optimization/71295 * gcc.c-torture/compile/pr71295.c: New test. 2016-08-25 Christophe Lyon gcc/ Backport from trunk r236818. 2016-05-27 Jiong Wang * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize va_list_gpr_counter_field and va_list_fpr_counter_field. gcc/testsuite/ Backport from trunk r236818. 2016-05-27 Jiong Wang * gcc.dg/tree-ssa/stdarg-2.c: Enable all testcases for AArch64. * gcc.dg/tree-ssa/stdarg-3.c: Likewise. * gcc.dg/tree-ssa/stdarg-4.c: Likewise. * gcc.dg/tree-ssa/stdarg-5.c: Likewise. * gcc.dg/tree-ssa/stdarg-6.c: Likewise. gcc/ Backport from trunk r236819. 2016-05-27 Jiong Wang PR target/63596 * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor tree-stdarg analysis results. (aarch64_setup_incoming_varargs): Likewise. gcc/testsuite/ Backport from trunk r236819. 2016-05-27 Jiong Wang PR target/63596 * gcc.target/aarch64/va_arg_1.c: New testcase. * gcc.target/aarch64/va_arg_2.c: Likewise. * gcc.target/aarch64/va_arg_3.c: Likewise. 2016-08-25 Christophe Lyon gcc/ Backport from trunk r236728. 2016-05-25 Kyrylo Tkachov PR rtl-optimization/66940 * ifcvt.c (noce_get_alt_condition): Check that incrementing or decrementing desired_val will not overflow before performing these operations. gcc/testsuite/ Backport from trunk r236728. 2016-05-25 Kyrylo Tkachov PR rtl-optimization/66940 * gcc.c-torture/execute/pr66940.c: New test. 2016-08-25 Christophe Lyon gcc/ Backport from trunk r235402, r235403. 2016-04-25 Michael Collison * config/arm/neon.md (widen_sum): New patterns where mode is VQI to improve mixed mode vectorization. * config/arm/neon.md (vec_sel_widen_ssum_lo3): New define_insn to match low half of signed vaddw. * config/arm/neon.md (vec_sel_widen_ssum_hi3): New define_insn to match high half of signed vaddw. * config/arm/neon.md (vec_sel_widen_usum_lo3): New define_insn to match low half of unsigned vaddw. * config/arm/neon.md (vec_sel_widen_usum_hi3): New define_insn to match high half of unsigned vaddw. * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function. (arm_simd_check_vect_par_cnst_half_p): Likewise. * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype for new function. (arm_simd_check_vect_par_cnst_half_p): Likewise. * config/arm/predicates.md (vect_par_constant_high): Support big endian and simplify by calling arm_simd_check_vect_par_cnst_half (vect_par_constant_low): Likewise. gcc/testsuite/ Backport from trunk r235402. 2016-04-25 Michael Collison * testsuite/gcc.target/arm/neon-vaddws16.c: New test. * testsuite/gcc.target/arm/neon-vaddws32.c: New test. * testsuite/gcc.target/arm/neon-vaddwu16.c: New test. * testsuite/gcc.target/arm/neon-vaddwu32.c: New test. * testsuite/gcc.target/arm/neon-vaddwu8.c: New test. * testsuite/lib/target-supports.exp (check_effective_target_vect_widen_sum_hi_to_si_pattern): Indicate that arm neon support vector widen sum of HImode TO SImode. 2016-08-25 Christophe Lyon gcc/ Backport from trunk r237200. 2016-06-08 Jiong Wang * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New (TYPES_BINOP_SUS): Likewise. (aarch64_simd_builtin_data): Update include file name. (aarch64_builtins): Likewise. * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries for conversion between scalar float-point and fixed-point. (ucvtf): Likewise. (fcvtzs): Likewise. (fcvtzu): Likewise. * config/aarch64/aarch64.md (3: New pattern for conversion between scalar float to fixed-pointer. (: Likewise. (UNSPEC_FCVTZS): New UNSPEC enumeration. (UNSPEC_FCVTZU): Likewise. (UNSPEC_SCVTF): Likewise. (UNSPEC_UCVTF): Likewise. * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly. Use builtin. (vcvtd_n_f64_u64): Likewise. (vcvtd_n_s64_f64): Likewise. (vcvtd_n_u64_f64): Likewise. (vcvtd_n_f32_s32): Likewise. (vcvts_n_f32_u32): Likewise. (vcvtd_n_s32_f32): Likewise. (vcvts_n_u32_f32): Likewise. * config/aarch64/iterators.md (fcvt_target): Support integer to float mapping. (FCVT_TARGET): Likewise. (FCVT_FIXED2F): New iterator. (FCVT_F2FIXED): Likewise. (fcvt_fixed_insn): New define_int_attr. gcc/ Backport from trunk r237201. * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes. (ucvtf): Likewise. (fcvtzs): Likewise. (fcvtzu): Likewise. * config/aarch64/aarch64-simd.md (3): New. (3): Likewise. * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly. Use builtin. (vcvt_n_f32_u32): Likewise. (vcvt_n_s32_f32): Likewise. (vcvt_n_u32_f32): Likewise. (vcvtq_n_f32_s32): Likewise. (vcvtq_n_f32_u32): Likewise. (vcvtq_n_f64_s64): Likewise. (vcvtq_n_f64_u64): Likewise. (vcvtq_n_s32_f32): Likewise. (vcvtq_n_s64_f64): Likewise. (vcvtq_n_u32_f32): Likewise. (vcvtq_n_u64_f64): Likewise. * config/aarch64/iterators.md (VDQ_SDI): New mode iterator. (VSDQ_SDI): Likewise. (fcvt_target): Support V4DI, V4SI and V2SI. (FCVT_TARGET): Likewise. 2016-06-08 Jiong Wang * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New (TYPES_BINOP_SUS): Likewise. (aarch64_simd_builtin_data): Update include file name. (aarch64_builtins): Likewise. * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries for conversion between scalar float-point and fixed-point. (ucvtf): Likewise. (fcvtzs): Likewise. (fcvtzu): Likewise. * config/aarch64/aarch64.md (3: New pattern for conversion between scalar float to fixed-pointer. (: Likewise. (UNSPEC_FCVTZS): New UNSPEC enumeration. (UNSPEC_FCVTZU): Likewise. (UNSPEC_SCVTF): Likewise. (UNSPEC_UCVTF): Likewise. * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly. (vcvtd_n_f64_u64): Likewise. (vcvtd_n_s64_f64): Likewise. (vcvtd_n_u64_f64): Likewise. (vcvtd_n_f32_s32): Likewise. (vcvts_n_f32_u32): Likewise. (vcvtd_n_s32_f32): Likewise. (vcvts_n_u32_f32): Likewise. * config/aarch64/iterators.md (fcvt_target): Support integer to float (FCVT_TARGET): Likewise. (FCVT_FIXED2F): New iterator. (FCVT_F2FIXED): Likewise. (fcvt_fixed_insn): New define_int_attr. gcc/ Backport from trunk r237202. 2016-06-08 Jiong Wang * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes VALLF. * config/aarch64/aarch64-simd.md (aarch64_rsqrte_2): Rename to "aarch64_rsqrte". * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name. * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly. Use builtin. (vrsqrted_f64): Likewise. (vrsqrte_f32): Likewise. (vrsqrte_f64): Likewise. (vrsqrteq_f32): Likewise. (vrsqrteq_f64): Likewise. gcc/ Backport from trunk r237203. 2016-06-08 Jiong Wang * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes VALLF. * config/aarch64/aarch64-simd.md (aarch64_rsqrts_3): Rename to "aarch64_rsqrts". * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name. * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly. Use builtin. (vrsqrtsd_f64): Likewise. (vrsqrts_f32): Likewise. (vrsqrts_f64): Likewise. (vrsqrtsq_f32): Likewise. (vrsqrtsq_f64): Likewise. gcc/ Backport from trunk r237204. 2016-06-08 Jiong Wang * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes VALLF. * config/aarch64/aarch64-simd.md (fabd_3): Extend modes from VDQF to VALLF. Rename to "fabd3". "*fabd_scalar3): Delete. * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly. Use builtin. (vabdd_f64): Likewise. (vabd_f32): Likewise. (vabd_f64): Likewise. (vabdq_f32): Likewise. (vabdq_f64): Likewise. gcc/ Backport from trunk r237205. 2016-06-08 Jiong Wang * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in VDQF. * config/aarch64/aarch64-simd.md (aarch64_faddp): New. (arch64_addpv4sf): Delete. (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of "gen_aarch64_addpv4sf". * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly. Use builtin. (vpadds_f32): Likewise. (vpaddq_f32): Likewise. (vpaddq_f64): Likewise. gcc/ Backport from trunk r237602. 2016-06-20 James Greenhalgh * config/aarch64/aarch64.md (3): Add attributes to iterators. (3): Likewise. Correct attributes. * config/aarch64/aarch64-builtins.c (aarch64_types_binop_uss_qualifiers): Delete. (TYPES_BINOP_USS): Likewise. (aarch64_types_binop_sus_qualifiers): Likewise. (TYPES_BINOP_SUS): Likewise. (aarch64_types_fcvt_from_unsigned_qualifiers): New. (TYPES_FCVTIMM_SUS): Likewise. * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM rather than BINOP. (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS. (fcvtzs): Use SHIFTIMM rather than BINOP. (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS. 2016-08-25 Christophe Lyon gcc/ Backport from trunk r236181. 2016-05-12 Jiong Wang PR rtl-optimization/70904 * lra-constraint.c (process_addr_reg): Relax the restriction on subreg reload for wide mode. gcc/ Backport from trunk r236396. 2016-05-18 Jiong Wang PR rtl-optimization/71150 * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P check. 2016-08-25 Christophe Lyon gcc/ Backport from trunk r235998. 2016-05-07 Jim Wilson * config/arm/arm.md: (arch): Add neon. (arch_enabled): Return yes for arch neon when TARGET_NEON. * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3. Add neon_move as type for alt 3. Add arch attr enabling alt 3 for neon. Emit vmov.i64 for alt 3. Renumber alternatives 3 to 8. Adjust attributes for alt renumbering. Mark alt 3 as non-predicable. (thumb2_movdf_vfp): Likewise. 2016-08-23 Christophe Lyon gcc/ Backport from trunk r235532. 2016-04-26 Evandro Menezes * config/aarch64/aarch64.md (*movhf_aarch64): Add "movi %0, #0" to zero up register and remove the "fp" attributes. (*movsf_aarch64): Add "movi %0, #0" to zero up register and add the "simd" attributes. (*movdf_aarch64): Likewise. (*movtf_aarch64): Remove the "fp" attributes. * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly. * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise. 2016-08-22 Yvan Roux Merge branches/gcc-6-branch rev 239654. 2016-08-16 Yvan Roux gcc/ Backport from trunk r237645. 2016-06-21 Virendra Pathak * config/aarch64/aarch64-cores.def (vulcan): New core. * config/aarch64/aarch64-tune.md: Regenerate. * doc/invoke.texi: Document vulcan as an available option. gcc/ Backport from trunk r238372. 2016-07-15 Virendra Pathak Julian Brown * config/aarch64/aarch64-cores.def: Update vulcan COSTS. * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs): New variable. * config/aarch64/aarch64.c (vulcan_addrcost_table): Likewise. (vulcan_regmove_cost): Likewise. (vulcan_vector_cost): Likewise. (vulcan_branch_cost): Likewise. (vulcan_tunings): Likewise. gcc/ Backport from trunk r238937. 2016-08-01 Virendra Pathak * config/aarch64/aarch64.c (vulcan_tunings): Update vulcan L1 cache_line_size. 2016-08-08 Yvan Roux gcc/ Backport from trunk r237395, r237396, r237397, r237452. 2016-06-13 Evandro Menezes Wilco Dijkstra [AArch64] Emit division using the Newton series * config/aarch64/aarch64-protos.h (cpu_approx_modes): Add new member "division". (aarch64_emit_approx_div): Declare new function. * config/aarch64/aarch64.c (generic_approx_modes): New member "division". (exynosm1_approx_modes): Likewise. (xgene1_approx_modes): Likewise. (aarch64_emit_approx_div): Define new function. * config/aarch64/aarch64.md ("div3"): New expansion. * config/aarch64/aarch64-simd.md ("div3"): Likewise. * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option. * doc/invoke.texi (-mlow-precision-div): Describe new option. 2016-06-13 Evandro Menezes Wilco Dijkstra [AArch64] Emit square root using the Newton series * config/aarch64/aarch64-protos.h (aarch64_emit_approx_rsqrt): Replace with new function "aarch64_emit_approx_sqrt". (cpu_approx_modes): New member "sqrt". * config/aarch64/aarch64.c (generic_approx_modes): New member "sqrt". (exynosm1_approx_modes): Likewise. (xgene1_approx_modes): Likewise. (aarch64_emit_approx_rsqrt): Replace with new function "aarch64_emit_approx_sqrt". (aarch64_override_options_after_change_1): Handle new option. * config/aarch64/aarch64-simd.md (rsqrt2): Use new function instead. (sqrt2): New expansion and insn definitions. * config/aarch64/aarch64.md: Likewise. * config/aarch64/aarch64.opt (mlow-precision-sqrt): Add new option description. * doc/invoke.texi (mlow-precision-sqrt): Likewise. 2016-06-13 Evandro Menezes [AArch64] Add more choices for the reciprocal square root approximation Allow a target to prefer such operation depending on the operation mode. * config/aarch64/aarch64-protos.h (AARCH64_APPROX_MODE): New macro. (AARCH64_APPROX_{NONE,ALL}): Likewise. (cpu_approx_modes): New structure. (tune_params): New member "approx_modes". * config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro. * config/aarch64/aarch64.c (generic_approx_modes): New core "cpu_approx_modes" structure. (exynosm1_approx_modes): Likewise. (xgene1_approx_modes): Likewise. (generic_tunings): New member "approx_modes". (cortexa35_tunings): Likewise. (cortexa53_tunings): Likewise. (cortexa57_tunings): Likewise. (cortexa72_tunings): Likewise. (exynosm1_tunings): Likewise. (thunderx_tunings): Likewise. (xgene1_tunings): Likewise. (use_rsqrt_p): New argument for the mode and use new member from "tune_params". (aarch64_builtin_reciprocal): Devise mode from builtin. (aarch64_optab_supported_p): New argument for the mode. * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description. 2016-07-14 Yvan Roux gcc/ * LINARO-VERSION: Bump version number, post snapshot. 2016-07-14 Yvan Roux Make Linaro GCC Snapshot 6.1-2016.07. gcc/ * LINARO-VERSION: Update. 2016-07-11 Yvan Roux Merge branches/gcc-6-branch rev 238201. 2016-06-16 Yvan Roux gcc/ * LINARO-VERSION: Bump version number, post snapshot. 2016-06-16 Yvan Roux Make Linaro GCC Snapshot 6.1-2016.06. gcc/ * LINARO-VERSION: Update. 2016-06-15 Yvan Roux Merge branches/gcc-6-branch rev 237469. 2016-06-14 Christophe Lyon gcc/testsuite/ Backport from trunk r235926. 2016-05-05 Bin Cheng PR tree-optimization/57206 * gcc.dg/vect/pr57206.c: New test. 2016-06-14 Christophe Lyon gcc/ Backport from trunk r236266, r236268. 2016-05-16 Matthew Wahab * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove. * config/aarch64/arch64-protos.h (aarch64_legitimize_reload_address): Remove. * config/aarch64/aarch64.c (aarch64_legitimize_reload_address): Remove. 2016-06-14 Christophe Lyon gcc/ Backport from trunk r237058. 2016-06-03 Kyrylo Tkachov * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment. 2016-06-14 Christophe Lyon gcc/ Backport from trunk r236984. 2016-06-01 Kyrylo Tkachov * config/arm/sync.md (arm_store_exclusive): Use 'H' output modifier on operands[2] rather than creating a new entry in out-of-bounds memory of the operands array. (arm_store_release_exclusivedi): Likewise. 2016-06-14 Christophe Lyon gcc/ Backport from trunk r236982. 2016-06-01 Kyrylo Tkachov * config/arm/arm.c (arm_fusion_enabled_p): New function. * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype. * config/arm/crypto.md (crypto_, CRYPTO_UNARY): Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled. 2016-06-14 Christophe Lyon gcc/ Backport from trunk r236913. 2016-05-31 Thomas Preud'homme * config/arm/arm-protos.h (arm_arch_thumb1): Declare. * config/arm/arm.c (arm_arch_thumb1): Define. (arm_option_override): Initialize arm_arch_thumb1. * config/arm/arm.h (arm_arch_thumb1): Declare. (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target support Thumb-1 ISA. gcc/testsuite/ Backport from trunk r236913. 2016-05-31 Thomas Preud'homme * gcc.target/arm/armv5_thumb_isa.c: New test. 2016-06-14 Christophe Lyon gcc/ Backport from trunk r236916. 2016-05-31 Kyrylo Tkachov * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete. * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move): Delete prototype. * config/aarch64/iterators.md (insn_count): Add descriptive comment. * config/aarch64/aarch64-simd.md (*aarch64_mov, VSTRUCT modes): Remove use of aarch64_simd_attr_length_move, set length attribute directly. (*aarch64_be_movoi): Likewise. (*aarch64_be_movci): Likewise. (*aarch64_be_movxi): Likewise. 2016-06-14 Christophe Lyon gcc/ Backport from trunk r236832. 2016-05-27 Thomas Preud'homme * config/arm/arm.h (TARGET_ARM_V6M): Remove. (TARGET_ARM_V7M): Likewise. 2016-06-14 Christophe Lyon gcc/ Backport from trunk r236812. 2016-05-27 Kyrylo Tkachov * config/aarch64/aarch64.md (ashl3, SHORT modes): Use const_int_operand for operand 2 predicate. Simplify expand code as a result. 2016-06-14 Christophe Lyon gcc/ Backport from trunk r236820. 2016-05-27 Kyrylo Tkachov * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function. * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare prototype. * config/aarch64/aarch64-simd.md (aarch64_crypto_aesv16qi): Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled. 2016-06-14 Christophe Lyon gcc/ Backport from trunk r236809. 2016-05-27 Kyrylo Tkachov * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete. * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition that returns CC_SESWPmode and CC_ZESWPmode. (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode and CC_SESWPmode. (aarch64_rtx_costs): Likewise. 2016-06-14 Christophe Lyon gcc/ Backport from trunk r236770. 2016-05-26 Wilco Dijkstra * config/aarch64/aarch64-simd.md (aarch64_combinez): Add ? to integer variant. (aarch64_combinez_be): Likewise. 2016-06-14 Christophe Lyon gcc/ Backport from trunk r236771. 2016-05-26 Wilco Dijkstra * config/aarch64/aarch64.c (aarch64_case_values_threshold): Return a better case_values_threshold when optimizing. 2016-06-14 Christophe Lyon gcc/testsuite/ Backport from trunk r236769. 2016-05-26 Thomas Preud'homme * gcc.dg/plugin/plugin.exp: skip tail call tests for Thumb-1. 2016-06-14 Christophe Lyon gcc/ Backport from trunk r236635. 2016-05-24 Kyrylo Tkachov PR target/69857 * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early return. Reindent transformation comment and mention the ARM state behavior. 2016-06-14 Christophe Lyon gcc/ Backport from trunk r236461. 2016-05-19 Kyrylo Tkachov * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case): Don't add cost of inner memory when handling sign-extended loads. 2016-06-14 Christophe Lyon gcc/ Backport from trunk r236360. 2016-05-18 James Greenhalgh * config/aarch64/aarch64-simd.md (aarch64_reduc_plus_internal): Rename to... (reduc_plus_scal): ...This, and remove previous implementation. 2016-06-14 Christophe Lyon gcc/ Backport from trunk r236340. 2016-05-17 Jim Wilson * doc/cpp.texi (__GNUC__): Major version changes are no longer rare. * doc/invoke.texi (-mnan=2008): Change signalling to signaling. * doc/md.texi (fmin@var{m}3): Likewise. 2016-06-14 Christophe Lyon gcc/ Backport from trunk r236317. 2016-05-17 James Greenhalgh * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete. 2016-06-14 Christophe Lyon gcc/testsuite/ Backport from trunk r236316. 2016-05-17 Kyrylo Tkachov * gcc.target/aarch64/cpu-diagnostics-1.c: Skip if -mcpu is overriden. * gcc.target/aarch64/cpu-diagnostics-2.c: Likewise. * gcc.target/aarch64/cpu-diagnostics-3.c: Likewise. * gcc.target/aarch64/cpu-diagnostics-4.c: Likewise. 2016-06-14 Christophe Lyon gcc/ Backport from trunk r236312. 2016-05-17 James Greenhalgh * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition in brackets. 2016-06-14 Christophe Lyon gcc/ Backport from trunk r236311. 2016-05-17 James Greenhalgh * config/aarch64/aarch64.c (aarch64_output_simd_mov_immediate): Make "buf_size" a variable rather than a macro. 2016-06-14 Christophe Lyon ./ Backport from trunk r236290. 2016-05-16 Wilco Dijkstra * doc/invoke.texi (AArch64 Options): Various updates. 2016-06-14 Christophe Lyon gcc/ Backport from trunk r236285. 2016-05-16 Wilco Dijkstra * config/aarch64/aarch64.md (add3_compareC_cconly_imm): Remove use of %w. (add3_compareC_imm): Likewise. (si3_uxtw): Split into register and immediate variants. (andsi3_compare0_uxtw): Likewise. (and3_compare0): Likewise. (and3nr_compare0): Likewise. (stack_protect_test_): Don't use %x for memory operands. 2016-06-14 Christophe Lyon gcc/ Backport from trunk r236278. 2016-05-16 Wilco Dijkstra * gcc/config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_3): Split integer shifts into shift_reg and bfm. (aarch64_lshr_sisd_or_int_3): Likewise. (aarch64_ashr_sisd_or_int_3): Likewise. (ror3_insn): Likewise. (si3_insn_uxtw): Likewise. (3_insn): Change to rotate_imm. (extr5_insn_alt): Likewise. (extrsi5_insn_uxtw): Likewise. (extrsi5_insn_uxtw_alt): Likewise. 2016-06-14 Christophe Lyon gcc/testsuite/ Backport from trunk r236265. 2016-05-16 Jiong Wang PR testsuite/70227 * g++.dg/lto/pr69589_0.C: Skip arm and aarch64 bare-metal targets. 2016-06-14 Christophe Lyon gcc/ Backport from trunk r236197. 2016-05-13 Ramana Radhakrishnan * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set to true. gcc/testsuite/ Backport from trunk r236197. 2016-05-13 Ramana Radhakrishnan * gcc.target/aarch64/struct_return.c: New test. 2016-06-14 Christophe Lyon gcc/ Backport from trunk r236024. 2016-05-09 Kyrylo Tkachov * config/arm/arm.md (probe_stack): Add modes to set source and destination. 2016-06-14 Christophe Lyon gcc/ Backport from trunk r235877. 2016-05-04 Thomas Preud'homme * config.gcc: Error out when conflicting multilib is detected. Do not loop over multilibs since no combination is legal. 2016-06-14 Christophe Lyon gcc/ Backport from trunk r235538. 2016-04-27 Prathamesh Kulkarni * params.def (MIN_PARTITION_SIZE): Set default value to 10000. 2016-06-14 Christophe Lyon gcc/ Backport from trunk r235569. 2016-04-28 Kyrylo Tkachov * internal-fn.c (expand_arith_overflow): Convert preprocessor check for WORD_REGISTER_OPERATIONS to runtime check. 2016-06-14 Christophe Lyon gcc/ Backport from trunk r235478. 2016-04-27 Prathamesh Kulkarni * params.def (MAX_PARTITION_SIZE): New param. * invoke.texi: Document lto-max-partition. gcc/lto/ Backport from trunk r235478. 2016-04-27 Prathamesh Kulkarni * lto-partition.h (lto_balanced_map): New parameter. * lto-partition.c (lto_balanced_map): New parameter max_partition_size. Check if partition size is greater than max_partition_size. * lto.c (do_whole_program_analysis): Adjust calls to lto_balanced_map() to pass 2nd argument. 2016-06-14 Christophe Lyon gcc/testsuite/ Backport from trunk r235372. 2016-04-22 Christophe Lyon * lib/gcc-dg.exp (${tool}_load): Add default return value handler. 2016-06-14 Christophe Lyon libgcc/ Backport from trunk r235291. 2016-04-20 Martin Galvan * config/arm/ieee754-df.S: Fix typos in comments. 2016-06-14 Christophe Lyon gcc/testsuite/ Backport from trunk r236382. 2016-05-18 Christophe Lyon * gcc.target/aarch64/advsimd-intrinsics/vreinterpret.c: Fix typo in comment. gcc/testsuite/ Backport from trunk r236383. 2016-05-18 Christophe Lyon * gcc.target/aarch64/advsimd-intrinsics/vmul.c: Remove useless #ifdef. * gcc.target/aarch64/advsimd-intrinsics/vshl.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vtst.c: Likewise. gcc/testsuite/ Backport from trunk r236384. 2016-05-18 Christophe Lyon * gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h (CHECK, CHECK_FP, CHECK_CUMULATIVE_SAT): Print which type was checked. gcc/testsuite/ Backport from trunk r236385. 2016-05-18 Christophe Lyon * gcc.target/aarch64/advsimd-intrinsics/vsli_n.c: Add checks for vsliq_n_s64 and vsliq_n_u64. gcc/testsuite/ Backport from trunk r236387. 2016-05-18 Christophe Lyon * gcc.target/aarch64/advsimd-intrinsics/vreinterpret.c: Add missing tests for vreinterpretq_p{8,16}. gcc/testsuite/ Backport from trunk r236388. 2016-05-18 Christophe Lyon * gcc.target/aarch64/advsimd-intrinsics/vget_lane.c: Add fp16 tests. gcc/ Backport from trunk r236576. 2016-05-23 Christophe Lyon * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New. gcc/testsuite/ Backport from trunk r236576. 2016-05-23 Christophe Lyon * gcc.target/aarch64/advsimd-intrinsics/vtst.c: Add tests for vtst_p8, vtstq_p8, vtst_p16 and vtstq_p16. gcc/testsuite/ Backport from trunk r236577. 2016-05-23 Christophe Lyon * gcc.target/aarch64/advsimd-intrinsics/vstX_lane.c: Add fp16 tests. gcc/testsuite/ Backport from trunk r236578. 2016-05-23 Christophe Lyon * gcc.target/aarch64/advsimd-intrinsics/vrnd.c: New. * gcc.target/aarch64/advsimd-intrinsics/vrndX.inc: New. * gcc.target/aarch64/advsimd-intrinsics/vrnda.c: New. * gcc.target/aarch64/advsimd-intrinsics/vrndm.c: New. * gcc.target/aarch64/advsimd-intrinsics/vrndn.c: New. * gcc.target/aarch64/advsimd-intrinsics/vrndp.c: New. * gcc.target/aarch64/advsimd-intrinsics/vrndx.c: New. gcc/testsuite/ Backport from trunk r236579. 2016-05-23 Christophe Lyon * gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h (result): Add poly64x1_t and poly64x2_t cases if supported. * gcc.target/aarch64/advsimd-intrinsics/compute-ref-data.h (buffer, buffer_pad, buffer_dup, buffer_dup_pad): Likewise. * gcc.target/aarch64/advsimd-intrinsics/p64_p128.c: New file. * gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p128.c: New file. * gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p64.c: New file. gcc/testsuite/ Backport from trunk r236580. 2016-05-23 Christophe Lyon * gcc.target/aarch64/advsimd-intrinsics/vreinterpret.c: Add fp16 tests. * gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p128.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p64.c: Likewise. gcc/testsuite/ Backport from trunk r237171. 2016-06-07 Christophe Lyon * gcc.target/aarch64/advsimd-intrinsics/p64_p128.c: Remove spurious debug code. 2016-06-14 Christophe Lyon gcc/ Backport from trunk r236331. 2016-05-17 Jiong Wang * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename to *aarch64_fma4_elt_from_dup. (*aarch64_fnma4_elt_to_128df): Rename to *aarch64_fnma4_elt_from_dup. * config/aarch64/arm_neon.h (vfma_n_f64): New. (vfms_n_f32): Likewise. (vfms_n_f64): Likewise. (vfmsq_n_f32): Likewise. (vfmsq_n_f64): Likewise. gcc/testsuite/ Backport from trunk r236331. 2016-05-17 Jiong Wang * gcc.target/aarch64/fmla_intrinsic_1.c: Allow ".d[index]" besides ".2d[index]" when scan the assembly. * gcc.target/aarch64/fmls_intrinsic_1.c: Likewise. * gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h: New entry for float64x1. * gcc.target/aarch64/advsimd-intrinsics/vfms_vfma_n.c: New. gcc/ Backport from trunk r236332. 2016-05-17 Jiong Wang * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend to all supported modes. Rename to "*aarch64_mul3_elt_from_dup". gcc/testsuite/ Backport from trunk r236332. 2016-05-17 Jiong Wang * gcc.target/aarch64/simd/vmul_elem_1.c: New. gcc/ Backport from trunk r236333. 2016-05-17 Jiong Wang * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly. Use builtin. (vmul_n_s16): Likewise. (vmul_n_s32): Likewise. (vmul_n_u16): Likewise. (vmul_n_u32): Likewise. (vmulq_n_f32): Likewise. (vmulq_n_f64): Likewise. (vmulq_n_s16): Likewise. (vmulq_n_s32): Likewise. (vmulq_n_u16): Likewise. (vmulq_n_u32): Likewise. gcc/testsuite/ Backport from trunk r236333. 2016-05-17 Jiong Wang * gcc.target/aarch64/simd/vmul_elem_1.c: Use intrinsics. gcc/ Backport from trunk r236334. 2016-05-17 Jiong Wang * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator. Remove inline assembly. (vmvn_s16): Likewise. (vmvn_s32): Likewise. (vmvn_u8): Likewise. (vmvn_u16): Likewise. (vmvn_u32): Likewise. (vmvnq_s8): Likewise. (vmvnq_s16): Likewise. (vmvnq_s32): Likewise. (vmvnq_u8): Likewise. (vmvnq_u16): Likewise. (vmvnq_u32): Likewise. (vmvn_p8): Likewise. (vmvnq_p16): Likewise. gcc/testsuite/ Backport from trunk r236370. 2016-05-18 Jiong Wang * gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h: Guard float64_t with __aarch64__. * gcc.target/aarch64/advsimd-intrinsics/vfms_vfma_n.c: Guard variable declarations under __aarch64__ and __ARM_FEATURE_FMA. gcc/testsuite/ Backport from trunk r236762. 2016-05-26 Jiong Wang * gcc.target/aarch64/simd/vmul_elem_1.c: Force result variables to be kept in memory. 2016-05-30 Christophe Lyon gcc/ Backport from trunk r235269. 2016-04-20 Bin Cheng * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR. gcc/testsuite/ Backport from trunk r235269. 2016-04-20 Bin Cheng * gcc.dg/tree-ssa/scev-11.c: New test. * gcc.dg/tree-ssa/scev-12.c: New test. 2016-05-12 Yvan Roux gcc/ * LINARO-VERSION: Bump version number, post snapshot. 2016-05-12 Yvan Roux Make Linaro GCC Snapshot 6.1-2016.05. gcc/ * LINARO-VERSION: Update. 2016-05-09 Yvan Roux Create Linaro branch from gcc-6-branch at r236016. * .gitreview: New file. gcc/ * LINARO-VERSION: New file. * configure.ac: Add Linaro version string. * configure: Regenerate. gcc/ Cherry-pick from linaro/gcc-4_9-branch r217544. 2014-11-14 Yvan Roux Add Linaro release macros (Linaro only patch.) * Makefile.in (LINAROVER, LINAROVER_C, LINAROVER_S): Define. (CFLAGS-cppbuiltin.o): Add LINAROVER macro definition. (cppbuiltin.o): Depend on $(LINAROVER). * cppbuiltin.c (parse_linarover): New. (define_GNUC__): Define __LINARO_RELEASE__ and __LINARO_SPIN__ macros.