1. 01 Jul, 2019 1 commit
  2. 30 Jun, 2019 4 commits
    • sse.md (ssse3_abs<mode>2): Rename from abs<mode>2. · 6be2bef8
      	* config/i386/sse.md (ssse3_abs<mode>2): Rename from abs<mode>2.
      	(abs<mode>2): New expander.
      	* config/i386/i386-builtin.def (__builtin_ia32_pabsb):
      	Use CODE_FOR_ssse3_absv8qi2.
      	(__builtin_ia32_pabsw): Use CODE_FOR_ssse3_absv4hi2.
      	(__builtin_ia32_pabsd): Use CODE_FOR_ssse3_absv2si2.
      
      From-SVN: r272835
      Uros Bizjak committed
    • i386.md (mmx_isa): Rename x64, x64_noavx and x64_avx to sse, sse_noavx and avx. · b49ae8a5
      	* config/i386/i386.md (mmx_isa): Rename x64, x64_noavx and x64_avx
      	to sse, sse_noavx and avx.  Update all uses.
      
      	* config/i386/mmx.md (sse_movntq): Add "isa" attribute.
      	(*mmx_<plusminus_insn><mode>3): Ditto.
      	(*mmx_mulv4hi3"): Ditto.
      	(*mmx_smulv4hi3_highpart): Ditto.
      	(*mmx_umulv4hi3_highpart): Ditto.
      	(*mmx_pmaddwd): Ditto.
      	(*sse2_umulv1siv1di3): Ditto.
      	(*mmx_<code>v4hi3): Ditto.
      	(*mmx_<code>v8qi3): Ditto.
      	(mmx_ashr<mode>3): Ditto.
      	("mmx_<shift_insn><mode>3): Ditto.
      	(*mmx_eq<mode>3): Ditto.
      	(mmx_gt<mode>3): Ditto.
      	(mmx_andnot<mode>3): Ditto.
      	(*mmx_<code><mode>3): Ditto.
      	(*mmx_pinsrw): Ditto.
      	(*mmx_pextrw): Ditto.
      	(mmx_pshufw_1): Ditto.
      	(*mmx_uavgv8qi3): Ditto.
      	(*mmx_uavgv4hi3): Ditto.
      	("mmx_psadbw): Ditto.
      	* config/i386/sse.md (sse_cvtps2pi): Ditto.
      	(sse_cvttps2pi): Ditto.
      	(ssse3_pmaddubsw): Ditto.
      	(*ssse3_pmulhrswv4hi3): Ditto.
      	(ssse3_psign<mode>3): Ditto.
      
      From-SVN: r272834
      Uros Bizjak committed
    • [PATCH, Ada] Push -shared-libgcc where needed. · b09e0af6
      Gnatlink has code that checks for duplicate '-shared-libgcc’ switches (but not
      duplicate ‘static-libgcc’) and also pushes ’static-libgcc' onto the link line for
      targets that default to static linking, provided '-shared-libgcc' is not present.
      
      For targets that should use a shared libgcc we need the same process to be
      applied (in inverse), in the event that they do not default to providing the
      shared flag implicitly.
      
      So this adds the complementary set of tests for the shared case and pushes
      the shared flag as needed.  As a minor tidy-up there’s no need push duplicates
      of the libgcc switch onto the link line when one has already been seen (given by
      the user).
      
      The patch does not alter any of the platform defaults for static/shared libgcc,
      but it ensures that the intent of the link is explicit.
      
      gcc/ada/
      
      2019-06-30  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* gnatlink.adb (Link_Step): Remove duplicate -static-libgcc switches.
      	Push -shared-libgcc explicitly, when it is the target default (unless
      	overidden by the static flag).
      	When the user has put an instance of shared/static-libgcc do not push
      	a duplicate of this.
      
      From-SVN: r272832
      Iain Sandoe committed
    • Daily bump. · 4d30be57
      From-SVN: r272831
      GCC Administrator committed
  3. 29 Jun, 2019 9 commits
  4. 28 Jun, 2019 11 commits
    • Update pc-relative support. · 183ba378
      2019-06-28  Michael Meissner  <meissner@linux.ibm.com>
      
      	* config/rs6000/predicates.md (pcrel_address):  Use
      	SYMBOL_REF_LOCAL_P to determine if a label is local.
      	(pcrel_external_address): New predicate.
      	(non_prefixed_mem_operand): Delete, predicate not used.
      	* config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL_P): Delete, we now use
      	SYMBOL_REF_LOCAL_P to determine if we can use pc-relative
      	addressing.
      	(SYMBOL_REF_PCREL_P): Likewise.
      
      From-SVN: r272792
      Michael Meissner committed
    • re PR target/91009 (Bug with future PowerPC patches with lfiwax/lfiwzx (related to PR 90822)) · afbde658
      Fix PR target/91009
      
      2019-06-27   Michael Meissner  <meissner@linux.ibm.com>
      
      	PR target/91009
      	* config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Add non-VSX
      	alternative.
      	(floatsi<mode>2_lfiwax_mem): Add non-VSX alternative.
      	(floatunssi<mode>2_lfiwzx): Add non-VSX alternative.
      	(floatunssi<mode>2_lfiwzx_mem): Add non-VSX alternative.
      
      From-SVN: r272791
      Michael Meissner committed
    • [Darwin, PPC] Install the same headers as other sub-targets. · 415f0387
      This is primarily in order to improve testsuite coverage, we might elect
      to prune the list at some point.
      
      2019-06-28  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Remove
      	override on extra_headers.
      
      From-SVN: r272790
      Iain Sandoe committed
    • [Darwin] Fix a couple of Wformat-diag build warnings. · ccd40a69
      2019-06-28  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/darwin-c.c (pop_field_alignment): Quote #pragma options.
      	* config/darwin-driver.c (darwin_default_min_version): Remove newline
      	from warning.
      	(darwin_driver_init): Likewise.
      
      From-SVN: r272789
      Iain Sandoe committed
    • x86: improve GFNI insns · 778d120f
      There's no need for three alternatives: "v" without TARGET_AVX512F is
      the same as "x".
      
      From-SVN: r272784
      Jan Beulich committed
    • x86: fix vgf2p8affine*qb insns · c0569d34
      The affine transformations are not commutative (the two source operands
      have entirely different meaning).
      
      Also the nonimmediate_operand predicate can better be vector_operand.
      
      From-SVN: r272783
      Jan Beulich committed
    • [ARC][COMMITTED] Fix slsr-13 regressions. · 807c3ab5
      A recent RTX cost commit has changed the costs for ARC700 leading to errors in slsr-13.c test.
       This commit fixes this issue by reverting the cost computation for short instructions.
      
      2019-06-28  Claudiu Zissulescu  <claziss@synopsys.com>
      
      	* config/arc/arc.c (arc_rtx_costs): All short instructions are
      	having a lower cost regardless of the speed option.
      
      From-SVN: r272782
      Claudiu Zissulescu committed
    • add file missing from earlier commit · 8662802d
      From-SVN: r272781
      Jan Beulich committed
    • x86: fix CVT{,T}PD2PI insns · c1a106c2
      With just an "m" constraint misaligned memory operands won't be forced
      into a register, and hence cause #GP. So far this was guaranteed only
      in the case that CVT{,T}PD2DQ were chosen (which looks to be the case on
      x86-64 only).
      
      Switch the second alternative to Bm and also replace
      nonimmediate_operand by vector_operand.
      
      From-SVN: r272780
      Jan Beulich committed
    • [Arm] Remove constraint strings from define_expand constructs in the back end · cd65e265
      A number of Arm define_expand patterns have specified constraints for
      their operands. But the constraint strings are ignored at expand time
      and are therefore redundant/useless. We now avoid specifying constraints
      in new define_expands, but we should clean up the existing define_expand
      definitions.
      
      2019-06-28  Dennis Zhang  <dennis.zhang@arm.com>
      
              * config/arm/arm.md: Remove redundant constraints from
              define_expand but leave reload_inm and reload_outm patterns
              untouched since they need special constraints to work.
              * config/arm/arm-fixed.md: Remove redundant constraints from
              define_expand.
              * config/arm/iwmmxt.md: Likewise.
              * config/arm/neon.md: Likewise.
              * config/arm/sync.md: Likewise.
              * config/arm/thumb1.md: Likewise.
              * config/arm/vec-common.md: Likewise.
      
      From-SVN: r272779
      Dennis Zhang committed
    • Daily bump. · 494cd9e8
      From-SVN: r272774
      GCC Administrator committed
  5. 27 Jun, 2019 15 commits
    • Add --disable-tm-clone-registry libgcc configure option. · 5a460280
      This patch adds libgcc configuration option to disable TM clone 
      registry. This option helps to reduce code size for embedded targets 
      which do not need transactional memory support.
      
      	gcc/
      	* doc/install.texi: Document --disable-tm-clone-registry.
      	libgcc/
      	* Makefile.in (USE_TM_CLONE_REGISTRY): New.
      	(CRTSTUFF_CFLAGS): Use USE_TM_CLONE_REGISTRY.
      	* configure.ac: Add --disable-tm-clone-registry option.
      	* configure: Regenerate.
      
      From-SVN: r272769
      Ilia Diachkov committed
    • PR c++/55442 - memory-hog with highly recursive constexpr. · 7ffc7de5
      This testcase in the PR is extremely recursive, and therefore uses a huge
      amount of memory on caching the results of individual calls.  We no longer
      need to track all calls to catch infinite recursion, as we have other limits
      on maximum depth and operations count.  So let's only cache a few calls at
      the top level: 8 seems to be a reasonable compromise.
      
      gcc/c-family/
      	* c.opt (fconstexpr-loop-limit): New.
      gcc/cp/
      	* constexpr.c (push_cx_call_context): Return depth.
      	(cxx_eval_call_expression): Don't cache past constexpr_cache_depth.
      
      From-SVN: r272765
      Jason Merrill committed
    • re PR c++/91024 (-Wimplicit-fallthrough is confused by likely/unlikely attributes) · 95bb6e7a
      	PR c++/91024
      	* gimplify.c (collect_fallthrough_labels): Ignore GIMPLE_PREDICT
      	statements.
      
      	* g++.dg/warn/Wimplicit-fallthrough-4.C: New test.
      
      From-SVN: r272764
      Jakub Jelinek committed
    • re PR tree-optimization/91010 (ICE: Segmentation fault (in location_wrapper_p)) · 12213acb
      	PR tree-optimization/91010
      	* tree-vect-stmts.c (scan_operand_equal_p): If offset1 == offset2,
      	return true.  Otherwise, don't call operand_equal_p if offset1 or
      	offset2 is NULL and just return false.
      
      	* g++.dg/vect/simd-10.cc: New test.
      
      From-SVN: r272763
      Jakub Jelinek committed
    • [Darwin, PPC] Allow the user to override the use of hard float in kexts. · 08b21992
      The default for the kernel is soft-float, however a user writing a kernel
      extension might want to make use of hard float.  This change makes
      " -mkernel -mhard-float " work as expected.
      
      2019-06-27  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour
      	user-specified float mode choice for kernel mode code.
      
      From-SVN: r272760
      Iain Sandoe committed
    • [Darwin, PPC] Correct whitespace in specs. · 6986c632
      A recent merge dropped whitespace in the endfile specs, which affects
      transactional memory cases.
      
      2019-06-27  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/rs6000/darwin.h (ENDFILE_SPEC): Correct whitespace in the
      	spec.
      
      From-SVN: r272759
      Iain Sandoe committed
    • [Darwin, PPC] Do not use longcall for 64b code. · 085efec5
      The linker [ld64] that supports 64Bit does not need the JBSR longcall
      optimisation, and will not work with the most generic case (where the
      symbol is undefined external, but there is no symbl stub).  So switch
      the longcall option off.  ld64 will generate branch islands as needed.
      
      2019-06-27  Iain Sandoe  <iain@sandoe.co.uk>
      
      	* config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not
      	use longcall for 64b code.
      
      From-SVN: r272758
      Iain Sandoe committed
    • re PR fortran/90987 (Wrong error message with variables named "COMMON*") · c2fe6593
      2019-06-27  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/90987
      	* match.c (gfc_match_common): Adjust parsing of fixed and free form
      	source code containing, e.g., COMMONI.
      
      2019-06-27  Steven G. Kargl  <kargl@gcc.gnu.org>
      
      	PR fortran/90987
      	* gfortran.dg/common_1.f: new test.
      	* gfortran.dg/common_26.f90: Ditto.
      
      From-SVN: r272756
      Steven G. Kargl committed
    • builtins.c (get_memory_rtx): Fix comment. · 76715c32
      2019-06-27  Aaron Sawdey <acsawdey@linux.ibm.com>
      
      	* builtins.c (get_memory_rtx): Fix comment.
      	* optabs.def (movmem_optab): Change to cpymem_optab.
      	* expr.c (emit_block_move_via_cpymem): Change movmem to cpymem.
      	(emit_block_move_hints): Change movmem to cpymem.
      	* defaults.h: Change movmem to cpymem.
      	* targhooks.c (get_move_ratio): Change movmem to cpymem.
      	(default_use_by_pieces_infrastructure_p): Ditto.
      	* config/aarch64/aarch64-protos.h: Change movmem to cpymem.
      	* config/aarch64/aarch64.c (aarch64_expand_movmem): Change movmem
      	to cpymem.
      	* config/aarch64/aarch64.h: Change movmem to cpymem.
      	* config/aarch64/aarch64.md (movmemdi): Change name to cpymemdi.
      	* config/alpha/alpha.h: Change movmem to cpymem in comment.
      	* config/alpha/alpha.md (movmemqi, movmemdi, *movmemdi_1): Change
      	movmem to cpymem.
      	* config/arc/arc-protos.h: Change movmem to cpymem.
      	* config/arc/arc.c (arc_expand_movmem): Change movmem to cpymem.
      	* config/arc/arc.h: Change movmem to cpymem in comment.
      	* config/arc/arc.md (movmemsi): Change movmem to cpymem.
      	* config/arm/arm-protos.h: Change movmem to cpymem in names.
      	* config/arm/arm.c (arm_movmemqi_unaligned, arm_gen_movmemqi, 
      	gen_movmem_ldrd_strd, thumb_expand_movmemqi) Change movmem to cpymem.
      	* config/arm/arm.md (movmemqi): Change movmem to cpymem.
      	* config/arm/thumb1.md (movmem12b, movmem8b): Change movmem to cpymem.
      	* config/avr/avr-protos.h: Change movmem to cpymem.
      	* config/avr/avr.c (avr_adjust_insn_length, avr_emit_movmemhi,
      	avr_out_movmem): Change movmem to cpymem.
      	* config/avr/avr.md (movmemhi, movmem_<mode>, movmemx_<mode>):
      	Change movmem to cpymem.
      	* config/bfin/bfin-protos.h: Change movmem to cpymem.
      	* config/bfin/bfin.c (single_move_for_movmem, bfin_expand_movmem):
      	Change movmem to cpymem.
      	* config/bfin/bfin.h: Change movmem to cpymem in comment.
      	* config/bfin/bfin.md (movmemsi): Change name to cpymemsi.
      	* config/c6x/c6x-protos.h: Change movmem to cpymem.
      	* config/c6x/c6x.c (c6x_expand_movmem): Change movmem to cpymem.
      	* config/c6x/c6x.md (movmemsi): Change name to cpymemsi.
      	* config/frv/frv.md (movmemsi): Change name to cpymemsi.
      	* config/ft32/ft32.md (movmemsi): Change name to cpymemsi.
      	* config/h8300/h8300.md (movmemsi): Change name to cpymemsi.
      	* config/i386/i386-expand.c (expand_set_or_movmem_via_loop,
      	expand_set_or_movmem_via_rep, expand_movmem_epilogue,
      	expand_setmem_epilogue_via_loop, expand_set_or_cpymem_prologue,
      	expand_small_cpymem_or_setmem,
      	expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves,
      	expand_set_or_cpymem_constant_prologue, 
      	ix86_expand_set_or_cpymem): Change movmem to cpymem.
      	* config/i386/i386-protos.h: Change movmem to cpymem.
      	* config/i386/i386.h: Change movmem to cpymem in comment.
      	* config/i386/i386.md (movmem<mode>): Change name to cpymem.
      	(setmem<mode>): Change expansion function name.
      	* config/lm32/lm32.md (movmemsi): Change name to cpymemsi.
      	* config/m32c/blkmov.md (movmemhi, movmemhi_bhi_op, movmemhi_bpsi_op,
      	movmemhi_whi_op, movmemhi_wpsi_op): Change movmem to cpymem.
      	* config/m32c/m32c-protos.h: Change movmem to cpymem.
      	* config/m32c/m32c.c (m32c_expand_movmemhi): Change movmem to cpymem.
      	* config/m32r/m32r.c (m32r_expand_block_move): Change movmem to cpymem.
      	* config/m32r/m32r.md (movmemsi, movmemsi_internal): Change movmem
      	to cpymem.
      	* config/mcore/mcore.md (movmemsi): Change name to cpymemsi.
      	* config/microblaze/microblaze.c: Change movmem to cpymem in comment.
      	* config/microblaze/microblaze.md (movmemsi): Change name to cpymemsi.
      	* config/mips/mips.c (mips_use_by_pieces_infrastructure_p):
      	Change movmem to cpymem.
      	* config/mips/mips.h: Change movmem to cpymem.
      	* config/mips/mips.md (movmemsi): Change name to cpymemsi.
      	* config/nds32/nds32-memory-manipulation.c
      	(nds32_expand_movmemsi_loop_unknown_size,
      	nds32_expand_movmemsi_loop_known_size, nds32_expand_movmemsi_loop,
      	nds32_expand_movmemsi_unroll,
      	nds32_expand_movmemsi): Change movmem to cpymem.
      	* config/nds32/nds32-multiple.md (movmemsi): Change name to cpymemsi.
      	* config/nds32/nds32-protos.h: Change movmem to cpymem.
      	* config/pa/pa.c (compute_movmem_length): Change movmem to cpymem.
      	(pa_adjust_insn_length): Change call to compute_movmem_length.
      	* config/pa/pa.md (movmemsi, movmemsi_prereload, movmemsi_postreload,
      	movmemdi, movmemdi_prereload, 
      	movmemdi_postreload): Change movmem to cpymem.
      	* config/pdp11/pdp11.md (movmemhi, movmemhi1, 
      	movmemhi_nocc, UNSPEC_MOVMEM): Change movmem to cpymem.
      	* config/riscv/riscv.c: Change movmem to cpymem in comment.
      	* config/riscv/riscv.h: Change movmem to cpymem.
      	* config/riscv/riscv.md: (movmemsi) Change name to cpymemsi.
      	* config/rs6000/rs6000.md: (movmemsi) Change name to cpymemsi.
      	* config/rx/rx.md: (UNSPEC_MOVMEM, movmemsi, rx_movmem): Change
      	movmem to cpymem.
      	* config/s390/s390-protos.h: Change movmem to cpymem.
      	* config/s390/s390.c (s390_expand_movmem, s390_expand_setmem,
      	s390_expand_insv): Change movmem to cpymem.
      	* config/s390/s390.md (movmem<mode>, movmem_short, *movmem_short,
      	movmem_long, *movmem_long, *movmem_long_31z): Change movmem to cpymem.
      	* config/sh/sh.md (movmemsi): Change name to cpymemsi.
      	* config/sparc/sparc.h: Change movmem to cpymem in comment.
      	* config/vax/vax-protos.h (vax_output_movmemsi): Remove prototype
      	for nonexistent function.
      	* config/vax/vax.h: Change movmem to cpymem in comment.
      	* config/vax/vax.md (movmemhi, movmemhi1): Change movmem to cpymem.
      	* config/visium/visium.h: Change movmem to cpymem in comment.
      	* config/visium/visium.md (movmemsi): Change name to cpymemsi.
      	* config/xtensa/xtensa.md (movmemsi): Change name to cpymemsi.
      	* doc/md.texi: Change movmem to cpymem and update description to match.
      	* doc/rtl.texi: Change movmem to cpymem.
      	* target.def (use_by_pieces_infrastructure_p): Change movmem to cpymem.
              * doc/tm.texi: Regenerate.
      
      From-SVN: r272755
      Aaron Sawdey committed
    • rs6000.c (rs6000_option_override_internal): Enable -fvariable-expansion-in-unroller by default. · 00e72aa4
      2019-06-27  Bill Schmidt  <wschmidt@linux.ibm.com>
      
      	* config/rs6000/rs6000.c (rs6000_option_override_internal): Enable
      	-fvariable-expansion-in-unroller by default.
      	* doc/invoke.texi (-fvariable-expansion-in-unroller): Document new
      	default for Power.
      
      From-SVN: r272754
      Bill Schmidt committed
    • revert: config.gcc (powerpc-ibm-aix*): Define target_gtfiles. · 2fd634d4
              Revert
              2019-06-26  David Edelsohn  <dje.gcc@gmail.com>
              * config.gcc (powerpc-ibm-aix*): Define target_gtfiles.
      
              * config.gcc(rs6000-*-*): Define target_gtfiles.
      
      From-SVN: r272753
      David Edelsohn committed
    • lto-common.c: tree-pretty-print.h · 85693eef
      
      	* lto-common.c: tree-pretty-print.h
      	(type_streaming_finished): New static var.
      	(gimple_register_canonical_type_1): Return updated hash; handle ODR
      	types.
      	(iterative_hash_canonical_type): Update use of
      	gimple_register_canonical_type_1.
      
      From-SVN: r272750
      Jan Hubicka committed
    • class.c (layout_class_type): Set TYPE_CXX_ODR_P for as-base type copy. · a0276c00
      
      
      	* class.c (layout_class_type): Set TYPE_CXX_ODR_P for as-base
      	type copy.
      
      	* ipa-devirt.c (odr_type_d): Add tbaa_enabled flag.
      	(add_type_duplicate): When odr hash is not allocated, to nothing.
      	(odr_based_tbaa_p): New function.
      	(set_type_canonical_for_odr_type): New function.
      	* ipa-utils.h (enable_odr_based_tbaa, odr_based_tbaa_p,
      	set_type_canonical_for_odr_type): New.
      	* tree.c (gimple_canonical_types_compatible_p): ODR types with
      	ODR based TBAA are not equivalent to non-ODR types.
      
      	* lto-common.c: Include demangle.h and tree-pretty-print.h
      	(type_streaming_finished): New static var.
      	(gimple_register_canonical_type_1): Return updated hash; handle ODR
      	types.
      	(iterative_hash_canonical_type): Update use of
      	gimple_register_canonical_type_1.
      
      	* g++.dg/lto/alias-2_0.C: New testcase.
      	* g++.dg/lto/alias-2_1.C: New testcase.
      
      From-SVN: r272749
      Jan Hubicka committed
    • Fix various issues seen with clang-static-analyzer. · ef874db6
      2019-06-27  Martin Liska  <mliska@suse.cz>
      
      	PR tree-optimization/90974
      	PR rtl-optimization/90975
      	PR rtl-optimization/90976
      	PR target/91016
      	PR tree-optimization/91017
      	* config/i386/i386-expand.c (ix86_expand_rounddf_32): Remove
      	unused tmp.
      	* lra.c (lra_set_insn_recog_data): Remove a leftover from
      	initial commit of IRA.
      	* optabs.c (expand_twoval_binop): Use xop0 and xop1 instead
      	of op0 and op1.
      	* tree-vect-loop.c (vect_create_epilog_for_reduction):
      	Remove unused mode1.
      	* tree-vect-stmts.c (vectorizable_call): Remove dead assignment
      	to new_stmt_info.
      
      From-SVN: r272746
      Martin Liska committed
    • re PR target/90991 (_mm_loadu_ps instrinsic translates to vmovaps in combination… · d2d604d8
      re PR target/90991 (_mm_loadu_ps instrinsic translates to vmovaps in combination with _mm512_insertf32x4)
      
      	PR target/90991
      	* config/i386/sse.md (avx_vec_concat<mode>): Use nonimmediate_operand
      	instead of register_operand for operands[1], add m to its constraints
      	if operands[2] uses "C" constraint.  Ensure in condition that if
      	operands[2] is not 0, then operands[1] is not a MEM.  For last two
      	alternatives, use unaligned loads instead of aligned if operands[1] is
      	misaligned_operand.
      
      	* gcc.target/i386/avx2-pr90991-1.c: New test.
      	* gcc.target/i386/avx512dq-pr90991-2.c: New test.
      
      From-SVN: r272745
      Jakub Jelinek committed