@@ -31083,9 +31083,47 @@ result_t test_vmulq_lane_f32(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) {
31083
31083
#endif // ENABLE_TEST_ALL
31084
31084
}
31085
31085
31086
- result_t test_vmul_lane_f64(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) { return TEST_UNIMPL; }
31086
+ result_t test_vmul_lane_f64(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) {
31087
+ #ifdef ENABLE_TEST_ALL
31088
+ const double *_a = (double *)impl.test_cases_float_pointer1;
31089
+ const double *_b = (double *)impl.test_cases_float_pointer2;
31090
+ double _c[2];
31091
+ float64x1_t a = vld1_f64(_a);
31092
+ float64x1_t b = vld1_f64(_b);
31093
+ float64x1_t c;
31094
+
31095
+ for (int i = 0; i < 1; i++) {
31096
+ _c[i] = _a[i] * _b[0];
31097
+ }
31098
+ c = vmul_lane_f64(a, b, 0);
31099
+ return validate_double(c, _c[0]);
31100
+
31101
+ return TEST_SUCCESS;
31102
+
31103
+ #else
31104
+ return TEST_UNIMPL;
31105
+ #endif // ENABLE_TEST_ALL
31106
+ }
31107
+
31108
+ result_t test_vmulq_lane_f64(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) {
31109
+ #ifdef ENABLE_TEST_ALL
31110
+ const double *_a = (double *)impl.test_cases_float_pointer1;
31111
+ const double *_b = (double *)impl.test_cases_float_pointer2;
31112
+ double _c[4];
31113
+ float64x2_t a = vld1q_f64(_a);
31114
+ float64x1_t b = vld1_f64(_b);
31115
+ float64x2_t c;
31087
31116
31088
- result_t test_vmulq_lane_f64(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) { return TEST_UNIMPL; }
31117
+ for (int i = 0; i < 2; i++) {
31118
+ _c[i] = _a[i] * _b[0];
31119
+ }
31120
+ c = vmulq_lane_f64(a, b, 0);
31121
+ return validate_double(c, _c[0], _c[1]);
31122
+
31123
+ #else
31124
+ return TEST_UNIMPL;
31125
+ #endif // ENABLE_TEST_ALL
31126
+ }
31089
31127
31090
31128
result_t test_vmuls_lane_f32(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) { return TEST_UNIMPL; }
31091
31129
0 commit comments