1. 08 Nov, 2016 20 commits
    • All source files: Merge from upstream 285547. · 10189819
      libsanitizer/
      
      	* All source files: Merge from upstream 285547.
      	* configure.tgt (SANITIZER_COMMON_TARGET_DEPENDENT_OBJECTS): New
      	variable.
      	* configure.ac (SANITIZER_COMMON_TARGET_DEPENDENT_OBJECTS): Handle it.
      	* asan/Makefile.am (asan_files): Add new files.
      	* asan/Makefile.in: Regenerate.
      	* ubsan/Makefile.in: Likewise.
      	* lsan/Makefile.in: Likewise.
      	* tsan/Makefile.am (tsan_files): Add new files.
      	* tsan/Makefile.in: Regenerate.
      	* sanitizer_common/Makefile.am (sanitizer_common_files): Add new files.
      	(EXTRA_libsanitizer_common_la_SOURCES): Define.
      	(libsanitizer_common_la_LIBADD): Likewise.
      	(libsanitizer_common_la_DEPENDENCIES): Likewise.
      	* sanitizer_common/Makefile.in: Regenerate.
      	* interception/Makefile.in: Likewise.
      	* libbacktace/Makefile.in: Likewise.
      	* Makefile.in: Likewise.
      	* configure: Likewise.
      	* merge.sh: Handle builtins/assembly.h merging.
      	* builtins/assembly.h: New file.
      	* asan/libtool-version: Bump the libasan SONAME.
      
      From-SVN: r241977
      Maxim Ostapenko committed
    • dwarf2asm.c (USE_LINKONCE_INDIRECT): Test XCOFF_DEBUGGING_INFO at runtime. · f31d9224
              * dwarf2asm.c (USE_LINKONCE_INDIRECT): Test XCOFF_DEBUGGING_INFO
              at runtime.
      
      From-SVN: r241975
      David Edelsohn committed
    • re PR target/70799 (STV pass does not convert DImode shifts) · 90a2ffc0
      	PR target/70799
      	* config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
      	Handle ASHIFT and LSHIFTRT.
      	(dimode_scalar_chain::compute_convert_gain): Ditto.
      	(dimode_scalar_chain::convert_insn): Ditto.
      
      testsuite/ChangeLog:
      
      	PR target/70799
      	* gcc.target/i386/pr70799-2.c: New test.
      
      From-SVN: r241974
      Uros Bizjak committed
    • re PR fortran/77596 ([F03] procedure pointer component with implicit interface… · eba5aec8
      re PR fortran/77596 ([F03] procedure pointer component with implicit interface can point to a function)
      
      2016-11-08  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/77596
      	* expr.c (gfc_check_pointer_assign): Add special check for procedure-
      	pointer component with absent interface.
      
      2016-11-08  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/77596
      	* gfortran.dg/proc_ptr_comp_46.f90: New test.
      
      From-SVN: r241972
      Janus Weil committed
    • [2/2] Add store merging unit tests · c22d8787
      	* gimple-ssa-store-merging.c: Include selftest.h
      	(verify_array_eq): New function.
      	(verify_shift_bytes_in_array): Likewise.
      	(verify_shift_bytes_in_array_right): Likewise.
      	(verify_clear_bit_region): Likewise.
      	(verify_clear_bit_region_be): Likewise.
      	(store_merging_c_tests): Likewise.
      	* selftest.h (store_merging_c_tests): Declare prototype.
      	* selftest-run-tests.c (selftest::run_tests): Run
      	store_merging_c_tests.
      
      From-SVN: r241971
      Kyrylo Tkachov committed
    • pr56541.c: Xfail on !vect_cond_mixed targets. · fad36601
      	gcc/testsuite
      	* gcc.dg/vect/pr56541.c: Xfail on !vect_cond_mixed targets.
      
      From-SVN: r241969
      Bin Cheng committed
    • pr71347.c: Drop xfail. · 7c8615b6
      	gcc/testsuite
      	* gcc.dg/tree-ssa/pr71347.c: Drop xfail.
      
      From-SVN: r241968
      Bin Cheng committed
    • vect-cond-2.c: Drop xfail. · 4c6a4a53
      	gcc/testsuite
      	* gcc.dg/vect/vect-cond-2.c: Drop xfail.
      
      From-SVN: r241967
      Bin Cheng committed
    • [ARM][2/2] Remove old rtx costs · 83afd959
      	* 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.
      
      From-SVN: r241966
      Kyrylo Tkachov committed
    • [ARM][1/2] Use generic_extra_costs in all remaining tuning structs · 249a3cad
      	* 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.
      
      From-SVN: r241965
      Kyrylo Tkachov committed
    • [AArch64] Optimized implementation of search_line_fast for the CPP lexer · a6ac871c
      	  * lex.c (search_line_fast): New implementation for AArch64.
      
      From-SVN: r241964
      Richard Earnshaw committed
    • [1/2] Fix off-by-one error in clear_bit_region in store merging (PR tree-optimization/78234 ?) · 1f069ef5
      	PR tree-optimization/78234
      	* gimple-ssa-store-merging.c (clear_bit_region): Fix off-by-one error
      	in start != 0 case.
      
      From-SVN: r241962
      Kyrylo Tkachov committed
    • use-after-scope fallout · fcd1b8df
      	PR testsuite/78242
      	* g++.dg/asan/use-after-scope-4.C: New test.
      	* g++.dg/asan/use-after-scope-types-4.C: Update scanned pattern.
      	* gcc.dg/asan/use-after-scope-8.c: Remove.
      	PR testsuite/78242
      	* dbgcnt.def: Add new debug counter asan_use_after_scope.
      	* gimplify.c (gimplify_decl_expr): Do not sanitize vars
      	with a value expr.  Do not add artificial variables to
      	live_switch_vars.  Use the debug counter.
      	(gimplify_target_expr): Use the debug counter.
      	* internal-fn.def: Remove ECF_TM_PURE from ASAN_MARK builtin.
      	* sanitizer.def: Set ATTR_NOTHROW_LEAF_LIST to
      	BUILT_IN_ASAN_CLOBBER_N and BUILT_IN_ASAN_UNCLOBBER_N.
      
      From-SVN: r241961
      Martin Liska committed
    • tree-vect-stmts.c (get_group_load_store_type): If the access is aligned do not… · f9ef2c76
      tree-vect-stmts.c (get_group_load_store_type): If the access is aligned do not trigger peeling for gaps.
      
      2016-11-08  Richard Biener  <rguenther@suse.de>
      
      	* tree-vect-stmts.c (get_group_load_store_type): If the
      	access is aligned do not trigger peeling for gaps.
      	* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
      	force alignment of vars with DECL_USER_ALIGN.
      
      	* gcc.dg/vect/vect-nb-iter-ub-2.c: Adjust.
      
      From-SVN: r241959
      Richard Biener committed
    • [Patch AArch64] aarch64-c.o should depend on TARGET_H · ae55655b
      gcc/
      
      	* config/aarch64/t-aarch64 (aarch64-c.o): Depend on TARGET_H.
      
      From-SVN: r241958
      James Greenhalgh committed
    • Fix traditional cpp test failure · ad11774f
      	* gcc.dg/cpp/trad/trad.exp
      	(dg-runtest): Added $srcdir/$subdir/ to Include dirs.
      	* gcc.dg/cpp/trad/include.c: Use local header file.
      
      From-SVN: r241957
      Tamar Christina committed
    • re PR tree-optimization/78205 (BB vectorization confused by too large load groups) · fe73a332
      2016-11-08  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/78205
      	* tree-vect-stmts.c (vectorizable_load): Move check whether
      	we may run into gaps when BB vectorizing SLP permutations ...
      	* tree-vect-slp.c (vect_supported_load_permutation_p): ...
      	here where we can do a more precise check.
      
      	* gcc.dg/vect/bb-slp-pr78205.c: New testcase.
      
      From-SVN: r241956
      Richard Biener committed
    • re PR tree-optimization/78224 (g++ ICE at -O2(-O1 on gcc6) and above in… · ed053eb8
      re PR tree-optimization/78224 (g++ ICE at -O2(-O1 on gcc6) and above in verify_loop_structure, at cfgloop.c:1646)
      
      2016-11-08  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/78224
      	* tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
      	Split the fallthru edge in case its successor may have PHIs.
      	Do not free dominance info.
      
      	* g++.dg/torture/pr78224.C: New testcase.
      
      From-SVN: r241955
      Richard Biener committed
    • Fix bogus store_merging_x.c failures for avr. · 06658c6d
      Store merging isn't profitable for the avr. Add a new
      effective target keyword "store_merge", and turn it on
      only if non_strict_align *and* int32plus, as targets with
      smallish word sizes are unlikely to profit from this optimization.
      
      gcc/testsuite/ChangeLog
      
      2016-11-03  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
      
      	* gcc.dg/store_merging_1.c: Require store_merge.
      	* gcc.dg/store_merging_2.c: Likewise.
      	* gcc.dg/store_merging_4.c: Likewise.
      	* gcc.dg/store_merging_5.c: Likewise. 
      	* gcc.dg/store_merging_6.c: Likewise.
      	* gcc.dg/store_merging_7.c: Likewise.
      	* gcc.dg/store_merging_8.c: Likewise.
      	* lib/target-supports.exp (check_effective_target_store_merge): New.
      
      From-SVN: r241953
      Senthil Kumar Selvaraj committed
    • Daily bump. · e525d611
      From-SVN: r241949
      GCC Administrator committed
  2. 07 Nov, 2016 20 commits
    • fold-vec-add-1.c: Add dg-options -maltivec. · e4b39278
              * gcc.target/powerpc/fold-vec-add-1.c: Add dg-options -maltivec.
              * gcc.target/powerpc/fold-vec-add-2.c: Add dg-options -maltivec.
              * gcc.target/powerpc/fold-vec-add-3.c: Add dg-options -maltivec.
              * gcc.target/powerpc/fold-vec-add-4.c: Add dg-options -maltivec
              -mvsx -mpower8-vector.
              * gcc.target/powerpc/fold-vec-add-5.c: Add dg-options -maltivec -mno-vs\
      x.
              * gcc.target/powerpc/fold-vec-add-6.c: Add dg-options -maltivec -mvsx.
              * gcc.target/powerpc/fold-vec-add-7.c: Add dg-options -maltivec
              -mvsx -mpower8-vector.
      
      From-SVN: r241945
      David Edelsohn committed
    • Implement P0012R1, Make exception specifications part of the type system. · 51dc6603
      gcc/cp/
      	* cp-tree.h (enum tsubst_flags): Add tf_fndecl_type.
      	(flag_noexcept_type, ce_type): New.
      	* call.c (build_conv): Add ck_fnptr.
      	(enum conversion_kind): Change ck_tsafe to ck_fnptr.
      	(convert_like_real): Likewise.
      	(standard_conversion): Likewise.  Allow function pointer
      	conversions for pointers to member functions.
      	(reference_compatible_p): Allow function pointer conversions.
      	(direct_reference_binding): Likewise.
      	(reference_binding): Reference-compatible is no longer a subset of
      	reference-related.
      	(is_subseq): Also strip ck_lvalue after next_conversion.
      	* class.c (instantiate_type): Check fnptr_conv_p.
      	(resolve_address_of_overloaded_function): Likewise.
      	* cvt.c (can_convert_tx_safety): Now static.
      	(noexcept_conv_p, fnptr_conv_p, strip_fnptr_conv): New.
      	* decl.c (flag_noexcept_type): Define.
      	(cxx_init_decl_processing): Set it.
      	(bad_specifiers): Check it.
      	(grokdeclarator) [cdk_function]: Add exception-spec to type here.
      	* lambda.c (maybe_add_lambda_conv_op): Add exception-spec to
      	returned pointer.
      	* mangle.c (struct globals): Add need_cxx1z_warning.
      	(mangle_decl): Check it.
      	(write_exception_spec): New.
      	(write_function_type): Call it.
      	(canonicalize_for_substitution): Handle exception spec.
      	(write_type): Likewise.
      	(write_encoding): Set processing_template_decl across mangling of
      	partially-instantiated type.
      	* pt.c (determine_specialization): Pass tf_fndecl_type.
      	(tsubst_decl, fn_type_unification): Likewise.
      	(tsubst): Strip tf_fndecl_type, pass it to
      	tsubst_exception_specification.
      	(convert_nontype_argument_function): Handle function pointer
      	conversion.
      	(convert_nontype_argument): Likewise.
      	(unify, for_each_template_parm_r): Walk into noexcept-specifier.
      	* rtti.c (ptr_initializer): Encode noexcept.
      	* tree.c (canonical_eh_spec): New.
      	(build_exception_variant): Use it.
      	* typeck.c (composite_pointer_type): Handle fnptr conversion.
      	(comp_except_specs): Compare canonical EH specs.
      	(structural_comptypes): Call it.
      gcc/c-family/
      	* c.opt (Wc++1z-compat): New.
      	* c-cppbuiltin.c (c_cpp_builtins): Add __cpp_noexcept_function_type.
      libstdc++-v3/
      	* include/bits/c++config (_GLIBCXX_NOEXCEPT_PARM)
      	(_GLIBCXX_NOEXCEPT_QUAL): New.
      	* include/std/type_traits (is_function): Use them.
      	* libsubc++/new (launder): Likewise.
      	* libsupc++/cxxabi.h (__pbase_type_info::__masks): Add
      	__noexcept_mask.
      	* libsupc++/pbase_type_info.cc (__do_catch): Handle function
      	pointer conversion.
      libiberty/
      	* cp-demangle.c (is_fnqual_component_type): New.
      	(d_encoding, d_print_comp_inner, d_print_mod_list): Use it.
      	(FNQUAL_COMPONENT_CASE): New.
      	(d_make_comp, has_return_type, d_print_comp_inner)
      	(d_print_function_type): Use it.
      	(next_is_type_qual): New.
      	(d_cv_qualifiers, d_print_mod): Handle noexcept and throw-spec.
      include/
      	* demangle.h (enum demangle_component_type): Add
      	DEMANGLE_COMPONENT_NOEXCEPT, DEMANGLE_COMPONENT_THROW_SPEC.
      
      From-SVN: r241944
      Jason Merrill committed
    • C++ cleanups before C++17 noexcept in types. · 452811eb
      	* call.c (standard_conversion): Reorganize pointer conversions.
      	* pt.c (convert_nontype_argument_function): Convert to ref here.
      	(convert_nontype_argument): Not here.
      	(convert_template_argument): Add original type to error message.
      	(RECUR_AND_CHECK_FAILURE): Remove trailing semicolon.
      	(unify): Compare function-qualifiers.
      	* typeck.c (same_type_ignoring_top_level_qualifiers_p): Use
      	cp_build_qualified_type rather than TYPE_MAIN_VARIANT.
      
      From-SVN: r241943
      Jason Merrill committed
    • re PR target/78229 (ICE in redirect_eh_edge_1, at tree-eh.c:2305) · 4ab71abd
      	PR target/78229
      	* config/i386/i386.c (ix86_gimple_fold_builtin): Do not adjust                                                                             
      	EH info even for bzhi and pdep/pext.
      
      From-SVN: r241942
      Jakub Jelinek committed
    • Fix dates. · 9b8dc9ea
      From-SVN: r241941
      David Edelsohn committed
    • Add missing ChangeLog entry. · b3be619e
      	* config.gcc (powerpc*-*-*, rs6000*-*-*): Remove setting of
      	INCLUDE_EXTRA_SPEC for Advance Toolchain builds.
      
      From-SVN: r241939
      Peter Bergner committed
    • config.gcc (powerpc*-*-*, [...]): Remove setting of INCLUDE_EXTRA_SPEC for… · d850a6f4
      config.gcc (powerpc*-*-*, [...]): Remove setting of INCLUDE_EXTRA_SPEC for Advance Toolchain builds.
      
      	* config.gcc (powerpc*-*-*, rs6000*-*-*): Remove setting of
      	INCLUDE_EXTRA_SPEC for Advance Toolchain builds.
      
      From-SVN: r241937
      Peter Bergner committed
    • gnu-versioned-namespace.ver: Export C++17 new of over-aligned types symbols. · 76d3fd72
      2016-11-07  François Dumont  <fdumont@gcc.gnu.org>
      
      	* config/abi/pre/gnu-versioned-namespace.ver: Export C++17 new of
      	over-aligned types symbols.
      
      From-SVN: r241936
      François Dumont committed
    • rs6000: Do swdiv at expand time · b7fa8414
      We transform floating point divide instructions to a faster series of
      simple instructions, "swdiv".  Currently we do not do that until the
      first splitter pass, which is much too late for most optimisations
      that can happen on those new instructions, e.g. the constant loads
      are not CSEd inside an unrolled loop.  This patch changes things so
      those divide instructions are expanded during expand already.
      
      
      	* config/rs6000/rs6000.md (div<mode>3): Expand using rs6000_emit_swdiv
      	if appropriate.
      	* config/rs6000/vector.md (div<mode>3): Ditto.
      
      From-SVN: r241935
      Segher Boessenkool committed
    • scanasm.exp (hidden-scan-for): Add XCOFF support. · fda2d612
              * lib/scanasm.exp (hidden-scan-for): Add XCOFF support.
      
              * gfortran.dg/implicit_class_1.f90: Skip on AIX.
              * gcc.dg/visibility-14.c: XFAIL AIX.
              * gcc.dg/visibility-15.c: XFAIL AIX.
              * gcc.dg/visibility-16.c: XFAIL AIX.
              * gcc.dg/visibility-17.c: XFAIL AIX.
              * gcc.dg/visibility-18.c: XFAIL AIX.
              * gcc.dg/visibility-19.c: XFAIL AIX.
              * g++.dg/ext/visibility/anon1.C: XFAIL AIX.
              * g++.dg/ext/visibility/anon2.C: XFAIL AIX.
              * g++.dg/ext/visibility/pragma-override1.C: XFAIL AIX.
              * g++.dg/ext/visibility/pragma-override2.C: XFAIL AIX.
      
      From-SVN: r241934
      David Edelsohn committed
    • Fix typo. · 621d0992
      From-SVN: r241932
      David Edelsohn committed
    • configure.ac (.hidden): Change to conftest_s string. · 8d91472f
      * configure.ac (.hidden): Change to conftest_s string. Provide string
      for AIX assembler.
      (gcc_cv_ld_hidden): Yes for AIX.
      * configure: Regenerate.
      
      * dwarf2asm.c (USE_LINKONCE_INDIRECT): Don't set for AIX (XCOFF).
      
      * config/rs6000/rs6000-protos.h (rs6000_asm_weaken_decl): Declare
      (rs6000_xcoff_asm_output_aligned_decl_common): Declare.
      * config/rs6000/xcoff.h (TARGET_ASM_GLOBALIZE_DECL_NAME): Define.
      (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
      (ASM_OUTPUT_ALIGNED_COMMON): Delete.
      * config/rs6000/rs6000.c (rs6000_init_builtins): Change clog rename
      from #if to if.
      (rs6000_xcoff_visibility): New.
      (rs6000_xcoff_declare_function_name): Add visibility support.
      (rs6000_xcoff_asm_globalize_decl_name): New.
      (rs6000_xcoff_asm_output_aligned_decl_common): New.
      (rs6000_asm_weaken_decl): New.
      (rs6000_code_end): Disable HIDDEN_LINKONCE on XCOFF.
      config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Change definition to
      reference function.
      
      From-SVN: r241930
      David Edelsohn committed
    • Add template instantiations to the announce_function stream. · c9c03910
      	* pt.c (push_tinst_level_loc): Add template instantiations to the
      	announce_function stream.
      
      From-SVN: r241928
      Jason Merrill committed
    • re PR fortran/78226 (Fill out location information everywhere) · 39b4b34d
      2016-11-07  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR fortran/78226
      	* expr.c (gfc_generate_initializer):  Add where to EXPR_NULL
      	statement.
      	* iresolve.c (gfc_resolve_extends_type_of):  Add where to
      	both arguments of the function.
      	* resolve.c (resolve_select_type):  Add where to the
      	second argument of the new statement.
      
      From-SVN: r241927
      Thomas Koenig committed
    • * es.po: Update. · 98a98909
      From-SVN: r241922
      Joseph Myers committed
    • re PR driver/78206 (bootstrap failure under Apple sandbox that blacklists reads in /usr/local) · 68fe024e
      2016-11-06  Jack Howarth  <howarth.at.gcc@gmail.com>
      
      	PR driver/78206
      	* incpath.c: (remove_dup(): Also silently ignore EPERM.
      
      From-SVN: r241919
      Jack Howarth committed
    • Remove a TODO from verify_type_variant · f73fbf90
      2016-11-07  Martin Jambor  <mjambor@suse.cz>
      
      	* tree.c (verify_type_variant): Use pointer comparison to check that
      	TYPE_SIZE_UNIT match.
      
      From-SVN: r241918
      Martin Jambor committed
    • re PR target/77834 (ICE: in make_decl_rtl, at varasm.c:1311 with -O -ftree-pre… · a8404b9a
      re PR target/77834 (ICE: in make_decl_rtl, at varasm.c:1311 with -O -ftree-pre -mstringop-strategy=libcall)
      
      	PR target/77834
      	* dse.c (dse_step5): Call scan_reads even if just
      	insn_info->frame_read.  Improve and fix dump file messages.
      
      From-SVN: r241917
      Jakub Jelinek committed
    • re PR target/78227 (ICE: unrecognizable insn: in extract_insn, at recog.c:2311… · 60cee85e
      re PR target/78227 (ICE: unrecognizable insn: in extract_insn, at recog.c:2311 with -mavx512bw and vector comare)
      
      	PR target/78227
      	* config/i386/i386.c (ix86_expand_sse_cmp): Force dest into
      	cmp_mode argument even for -O0 if cmp_mode != mode and maskcmp.
      
      	* gcc.target/i386/pr78227-1.c: New test.
      	* gcc.target/i386/pr78227-2.c: New test.
      
      From-SVN: r241916
      Jakub Jelinek committed
    • re PR middle-end/35691 (Missed (a == 0) && (b == 0) into (a|(typeof(a)(b)) == 0… · 7aa13860
      re PR middle-end/35691 (Missed (a == 0) && (b == 0) into (a|(typeof(a)(b)) == 0 when the types don't match)
      
      2016-11-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
      
      	PR middle-end/35691
      	* match.pd: Add following two patterns:
      	(x == 0 & y == 0) -> (x | typeof(x)(y)) == 0.
      	(x != 0 | y != 0) -> (x | typeof(x)(y)) != 0.
      
      testsuite/
      	* gcc.dg/pr35691-1.c: New test-case.
      	* gcc.dg/pr35691-4.c: Likewise.
      
      From-SVN: r241915
      Prathamesh Kulkarni committed