+2008-04-28 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/36073
+ * config/i386/i386.md
+ (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
+ Change operand 1 predicate to nonimmediate_operand.
+
2008-04-28 Jakub Jelinek <jakub@redhat.com>
PR debug/36060
2008-04-28 Uros Bizjak <ubizjak@gmail.com>
PR target/36064
- * config/i386/i386.md (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
+ * config/i386/i386.md
+ (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
Use match_scratch instead of match_operand for operands 3 and 4.
2008-04-27 Richard Guenther <rguenther@suse.de>
(define_insn "*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit"
[(set (match_operand:MODEF 0 "register_operand" "=f,x,x")
(float:MODEF
- (match_operand:SSEMODEI24 1 "register_operand" "m,r,m")))]
+ (match_operand:SSEMODEI24 1 "nonimmediate_operand" "m,r,m")))]
"(<SSEMODEI24:MODE>mode != DImode || TARGET_64BIT)
&& SSE_FLOAT_MODE_P (<MODEF:MODE>mode) && TARGET_MIX_SSE_I387
&& (TARGET_INTER_UNIT_CONVERSIONS || optimize_size)"
+2008-04-28 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/36073
+ * gcc.target/i386/pr36073.c: New test.
+
2008-04-28 Richard Guenther <rguenther@suse.de>
PR testsuite/34223
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-O -march=core2 -mfpmath=sse,387 -ffast-math" } */
+
+extern double log (double x);
+extern int f (void);
+
+double cached_value;
+
+void g (void)
+{
+ cached_value = log (f ());
+}