blob: e45028f75c9a12177a7bdc635a7d5bacafa2bec9 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-mno-mips16 -mfp64 -mhard-float -mmsa" } */
typedef int v4i32 __attribute__ ((vector_size(16)));
typedef long long v2i64 __attribute__ ((vector_size(16)));
/* Test MSA dot product family for CSE optimization. */
static v4i32 g = {0, 92, 93, 94};
static v4i32 h = {12, 24, 36, 48};
static v2i64 l = {84, 98};
void
dotp_d_msa (v2i64 *c)
{
l = __builtin_msa_dotp_s_d (g, h);
}
/* { dg-final { scan-assembler "dotp_s.d" } } */
void
dpadd_d_msa (v2i64 *c)
{
*c = __builtin_msa_dpadd_s_d (l, g, h);
}
/* { dg-final { scan-assembler "dpadd_s.d" } } */
void
dpsub_d_msa (v2i64 *c)
{
*c = __builtin_msa_dpsub_s_d (l, g, h);
}
/* { dg-final { scan-assembler "dpsub_s.d" } } */