/* { 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" } } */