+2008-05-16 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/36246
+ * config/i386/i386.h (SECONDARY_MEMORY_NEEDED_MODE): New define.
+
2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
* ifcvt.c (dead_or_predicable): Rename
2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
- * cfg.c (init_flow): Add argument THE_FUN. Use it
- instead of cfun. Update all users.
+ * cfg.c (init_flow): Add argument THE_FUN. Use it instead of cfun.
+ Update all users.
2008-05-16 Kenneth Zadeck <zadeck@naturalbridge.com>
* tree-pretty-print.c (dump_phi_nodes, dump_generic_bb_buff):
Add verbose dump.
* tree-pass.h (TDF_VERBOSE): New dump flag.
- * print-tree.c (print_node): Added code to be able to print
- PHI_NODES.
+ * print-tree.c (print_node): Added code to be able to print PHI_NODES.
(tree-flow.h): Added include.
- Makefile.in (print-tree.o): Added TREE_FLOW_H.
+ * Makefile.in (print-tree.o): Added TREE_FLOW_H.
2008-05-16 Bernd Schmidt <bernd.schmidt@analog.com>
MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Likewise.
* config/bfin/bfin-protos.h (enum bfin_cpu_type): Add
BFIN_CPU_UNKNOWN.
- * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for
- BF561.
+ * config/bfin/elf.h (STARTFILE_SPEC): Use specific CRT for BF561.
(LIB_SPEC): Use proper linker script for bf561. Error if no mcpu
option.
* config/bfin/bfin.c (bfin_cpu_type): Set to BFIN_CPU_UNKNOWN.
* ipa-inline.c (compute_inline_parameters): Made public and added
node parameter.
(compute_inline_parameters_for_current): New function.
- (pass_inline_param): Now calls
- compute_inline_parameters_for_current.
+ (pass_inline_param): Now calls compute_inline_parameters_for_current.
(inline_generate_summary): Removed parameter and made to loop over
all cgraph nodes.
(pass_ipa_inline): Updated for new IPA_PASS structure.
2008-05-15 Diego Novillo <dnovillo@google.com>
- * config/arm/arm.c (arm_return_in_memory): Fix return
- type.
+ * config/arm/arm.c (arm_return_in_memory): Fix return type.
* config/arm/arm-protos.h (arm_return_in_memory): Likewise.
2008-05-15 Adam Nemet <anemet@caviumnetworks.com>
PR middle-end/36194
- * combine.c (check_conversion): Rename back to check_promoted_subreg.
- Don't call record_truncated_value from here.
- (record_truncated_value): Turn it into a for_each_rtx callback.
- (record_truncated_values): New function.
- (combine_instructions): Call note_uses with
- record_truncated_values. Change name of check_conversion to
- check_promoted_subreg.
+ * combine.c (check_conversion): Rename back to check_promoted_subreg.
+ Don't call record_truncated_value from here.
+ (record_truncated_value): Turn it into a for_each_rtx callback.
+ (record_truncated_values): New function.
+ (combine_instructions): Call note_uses with record_truncated_values.
+ Change name of check_conversion to check_promoted_subreg.
2008-05-15 Janis Johnson <janis187@us.ibm.com>
#define SECONDARY_MEMORY_NEEDED(CLASS1, CLASS2, MODE) \
ix86_secondary_memory_needed ((CLASS1), (CLASS2), (MODE), 1)
+/* Get_secondary_mem widens integral modes to BITS_PER_WORD.
+ There is no need to emit full 64 bit move on 64 bit targets
+ for integral modes that can be moved using 32 bit move. */
+#define SECONDARY_MEMORY_NEEDED_MODE(MODE) \
+ (GET_MODE_BITSIZE (MODE) < 32 && INTEGRAL_MODE_P (MODE) \
+ ? mode_for_size (32, GET_MODE_CLASS (MODE), 0) \
+ : MODE)
+
/* QImode spills from non-QI registers need a scratch. This does not
happen often -- the only example so far requires an uninitialized
pseudo. */
+2008-05-16 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/36246
+ * gcc.target/i386/pr36246.c: New test.
+
2008-05-16 Sebastian Pop <sebastian.pop@amd.com>
Jan Sjodin <jan.sjodin@amd.com>
2008-05-15 Janis Johnson <janis187@us.ibm.com>
* lib/torture-options.exp: New support for torture options.
- * lib/gfortran-dg.exp (gfortran-dg-runtest): Use new torture
- procs.
+ * lib/gfortran-dg.exp (gfortran-dg-runtest): Use new torture procs.
* lib/c-torture.exp: Define C_TORTURE_OPTIONS instead of
TORTURE_OPTIONS; don't define torture_with_loops and
torture_without_loops.
* lib/gcc-dg.exp: Define DG_TORTURE_OPTIONS instead of
TORTURE_OPTIONS; don't define torture_with_loops and
torture_without_loops.
- (gcc-dg-runtest): Use new torture procs if no torture options
- defined.
+ (gcc-dg-runtest): Use new torture procs if no torture options defined.
* lib/fortran-torture.exp: Define FORTRAN_TORTURE_OPTIONS instead of
TORTURE_OPTIONS.
(fortran-torture-execute): Use torture_with_loops instead of
--- /dev/null
+/* { dg-do compile } */
+/* { dg-require-effective-target lp64 } */
+/* { dg-options "-O2 -mtune=generic" } */
+
+typedef long long __m128i __attribute__ ((__vector_size__ (16), __may_alias__));
+typedef int __v4si __attribute__ ((__vector_size__ (16)));
+
+__m128i
+_mm_set_epi32 (int __q3, int __q2, int __q1, int __q0)
+{
+ return (__m128i)(__v4si){ __q0, __q1, __q2, __q3 };
+}
+
+/* { dg-final { scan-assembler-not "movq" } } */