PR middle-end/39928
* gimplify.c (gimplify_expr): If we are required to create
a temporary make sure it ends up as register.
* gcc.c-torture/compile/pr39928-1.c: New testcase.
* gcc.c-torture/compile/pr39928-2.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146846
138bc75d-0d04-0410-961f-
82ee72b054a4
+2009-04-27 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/39928
+ * gimplify.c (gimplify_expr): If we are required to create
+ a temporary make sure it ends up as register.
+
2009-04-27 H.J. Lu <hongjiu.lu@intel.com>
PR target/39903
/* The postqueue might change the value of the expression between
the initialization and use of the temporary, so we can't use a
formal temp. FIXME do we care? */
- *expr_p = get_initialized_tmp_var (*expr_p, pre_p, post_p);
+ {
+ *expr_p = get_initialized_tmp_var (*expr_p, pre_p, post_p);
+ if (TREE_CODE (TREE_TYPE (*expr_p)) == COMPLEX_TYPE
+ || TREE_CODE (TREE_TYPE (*expr_p)) == VECTOR_TYPE)
+ DECL_GIMPLE_REG_P (*expr_p) = 1;
+ }
else
*expr_p = get_formal_tmp_var (*expr_p, pre_p);
}
+2009-04-27 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/39928
+ * gcc.c-torture/compile/pr39928-1.c: New testcase.
+ * gcc.c-torture/compile/pr39928-2.c: Likewise.
+
2009-04-27 H.J. Lu <hongjiu.lu@intel.com>
PR target/39903
--- /dev/null
+typedef float __m128 __attribute__ ((__vector_size__ (16), __may_alias__));
+extern __m128 _mm_sub_ps (__m128 __A, __m128 __B);
+extern __m128 _mm_mul_ps (__m128 __A, __m128 __B);
+__m128
+vq_nbest(const __m128 *codebook, __m128 d, __m128 in)
+{
+ return _mm_sub_ps(d, _mm_mul_ps(in, *codebook++));
+}
--- /dev/null
+typedef _Complex float __m128;
+extern __m128 _mm_sub_ps (__m128 __A, __m128 __B);
+extern __m128 _mm_mul_ps (__m128 __A, __m128 __B);
+__m128
+vq_nbest(const __m128 *codebook, __m128 d, __m128 in)
+{
+ return _mm_sub_ps(d, _mm_mul_ps(in, *codebook++));
+}