+2017-02-22 Sameera Deshpande <sameera.deshpande@imgtec.com>
+
+ * config/mips/mips.c (mips_return_in_memory): Force FP
+ vector types to be returned in memory for o32 ABI.
+
2017-02-22 Jakub Jelinek <jakub@redhat.com>
* dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
static bool
mips_return_in_memory (const_tree type, const_tree fndecl ATTRIBUTE_UNUSED)
{
- return (TARGET_OLDABI
- ? TYPE_MODE (type) == BLKmode
- : !IN_RANGE (int_size_in_bytes (type), 0, 2 * UNITS_PER_WORD));
+ if (TARGET_OLDABI)
+ /* Ensure that any floating point vector types are returned via memory
+ even if they are supported through a vector mode with some ASEs. */
+ return (VECTOR_FLOAT_TYPE_P (type)
+ || TYPE_MODE (type) == BLKmode);
+
+ return (!IN_RANGE (int_size_in_bytes (type), 0, 2 * UNITS_PER_WORD));
}
\f
/* Implement TARGET_SETUP_INCOMING_VARARGS. */
+2017-02-22 Sameera Deshpande <sameera.deshpande@imgtec.com>
+
+ * gcc.target/mips/msa-fp-cc.c: New test.
+
2017-02-22 Jakub Jelinek <jakub@redhat.com>
PR c++/79664
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-mabi=32 -mfp64 -mhard-float -mmsa" } */
+typedef float v4f32 __attribute__((vector_size(16)));
+typedef double v2f64 __attribute__((vector_size(16)));
+
+v4f32
+fcmpOeqVector4 (v4f32 a, v4f32 b)
+{
+ return a + b;
+}
+
+v2f64
+fcmpOeqVector2 (v2f64 a, v2f64 b)
+{
+ return a + b;
+}
+
+/* { dg-final { scan-assembler-not "copy_s" } } */
+/* { dg-final { scan-assembler-not "insert" } } */