float32x4_t test_vfmsq_f32(float32x4_t a1, float32x4_t a2, float32x4_t a3) { // CHECK: test_vfmsq_f32 return vfmsq_f32(a1, a2, a3); // CHECK: [[NEG:%.*]] = fsub <4 x float> {{.*}}, %a2 // CHECK: llvm.fma.v4f32(<4 x float> %a3, <4 x float> [[NEG]], <4 x float> %a1) // CHECK-NEXT: ret }
void func(float32x2_t v2f32, float32x4_t v4f32) { vfma_f32(v2f32, v2f32, v2f32); vfmaq_f32(v4f32, v4f32, v4f32); vfms_f32(v2f32, v2f32, v2f32); vfmsq_f32(v4f32, v4f32, v4f32); }
void test_vfmsQf32 (void) { float32x4_t out_float32x4_t; float32x4_t arg0_float32x4_t; float32x4_t arg1_float32x4_t; float32x4_t arg2_float32x4_t; out_float32x4_t = vfmsq_f32 (arg0_float32x4_t, arg1_float32x4_t, arg2_float32x4_t); }