+2013-11-06 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/59021
+ * config/i386/i386.c (ix86_avx_u128_mode_needed): Require
+ AVX_U128_DIRTY mode for call_insn RTXes that use AVX256 registers.
+ (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY mode for call_insn
+ RTXes that return in AVX256 register.
+
2013-11-06 Richard Biener <rguenther@suse.de>
PR tree-optimization/58653
- * tree-predcom.c (ref_at_iteration): Rewrite to generate
- a MEM_REF.
+ * tree-predcom.c (ref_at_iteration): Rewrite to generate a MEM_REF.
(prepare_initializers_chain): Adjust.
2013-11-06 Andrew MacLeod <amacleod@redhat.com>
2013-11-06 Eric Botcazou <ebotcazou@adacore.com>
- * config/i386/i386.c (ix86_expand_prologue): Optimize stack checking for
- leaf functions without dynamic stack allocation.
+ * config/i386/i386.c (ix86_expand_prologue): Optimize stack
+ checking for leaf functions without dynamic stack allocation.
* config/ia64/ia64.c (ia64_emit_probe_stack_range): Adjust.
(ia64_expand_prologue): Likewise.
* config/mips/mips.c (mips_expand_prologue): Likewise.
2013-11-05 Jeff Law <law@redhat.com>
* Makefile.in (OBJS): Add gimple-ssa-isolate-paths.o
- * common.opt (-fisolate-erroneous-paths): Add option and
- documentation.
+ * common.opt (-fisolate-erroneous-paths): Add option and documentation.
* gimple-ssa-isolate-paths.c: New file.
* gimple.c (check_loadstore): New function.
(infer_nonnull_range): Moved into gimple.c from tree-vrp.c
virtual_operand_p, is_gimple_reg, is_gimple_val, is_gimple_asm_val,
is_gimple_min_lval, is_gimple_call_addr, is_gimple_mem_ref_addr,
gimple_decl_printable_name, useless_type_conversion_p,
- types_compatible_p, gimple_can_coalesce_p, copy_var_decl): Move to
+ types_compatible_p, gimple_can_coalesce_p, copy_var_decl): Move to
gimple-expr.[ch].
* gimple-expr.c: New File.
(useless_type_conversion_p, gimple_set_body, gimple_body,
gimple_has_body_p, gimple_decl_printable_name, copy_var_decl,
- gimple_can_coalesce_p, extract_ops_from_tree_1,
+ gimple_can_coalesce_p, extract_ops_from_tree_1,
gimple_cond_get_ops_from_tree, is_gimple_lvalue, is_gimple_condexpr,
is_gimple_address, is_gimple_invariant_address,
is_gimple_ip_invariant_address, is_gimple_min_invariant,
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-O2 -mavx -mvzeroupper" } */
+
+extern void abort (void);
+
+struct S {
+ int i1;
+ int i2;
+ int i3;
+};
+
+typedef double v4df __attribute__ ((vector_size (32)));
+
+extern int foo (v4df, int i1, int i2, int i3, int i4, int i5, struct S s);
+
+void bar (v4df v, struct S s)
+{
+ int r = foo (v, 1, 2, 3, 4, 5, s);
+ if (r)
+ abort ();
+}
+
+/* { dg-final { scan-assembler-not "vzeroupper" } } */