float32x2_t test_vfms_f32(float32x2_t a1, float32x2_t a2, float32x2_t a3) { // CHECK: test_vfms_f32 return vfms_f32(a1, a2, a3); // CHECK: [[NEG:%.*]] = fsub <2 x float> {{.*}}, %a2 // CHECK: llvm.fma.v2f32(<2 x float> %a3, <2 x float> [[NEG]], <2 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); }