@@ -1106,7 +1106,25 @@ result_t test_vmlsq_u16(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) { return
1106
1106
1107
1107
result_t test_vmlsq_u32 (const NEON2RVV_TEST_IMPL &impl, uint32_t iter) { return TEST_UNIMPL; }
1108
1108
1109
- result_t test_vmlsl_s8 (const NEON2RVV_TEST_IMPL &impl, uint32_t iter) { return TEST_UNIMPL; }
1109
+ result_t test_vmlsl_s8 (const NEON2RVV_TEST_IMPL &impl, uint32_t iter) {
1110
+ const int16_t *_a = (int16_t *)impl.test_cases_int_pointer1 ;
1111
+ const int8_t *_b = (int8_t *)impl.test_cases_int_pointer1 + 8 ;
1112
+ const int8_t *_c = (int8_t *)impl.test_cases_int_pointer2 ;
1113
+ int16_t d0 = _a[0 ] - (int16_t )_b[0 ] * (int16_t )_c[0 ];
1114
+ int16_t d1 = _a[1 ] - (int16_t )_b[1 ] * (int16_t )_c[1 ];
1115
+ int16_t d2 = _a[2 ] - (int16_t )_b[2 ] * (int16_t )_c[2 ];
1116
+ int16_t d3 = _a[3 ] - (int16_t )_b[3 ] * (int16_t )_c[3 ];
1117
+ int16_t d4 = _a[4 ] - (int16_t )_b[4 ] * (int16_t )_c[4 ];
1118
+ int16_t d5 = _a[5 ] - (int16_t )_b[5 ] * (int16_t )_c[5 ];
1119
+ int16_t d6 = _a[6 ] - (int16_t )_b[6 ] * (int16_t )_c[6 ];
1120
+ int16_t d7 = _a[7 ] - (int16_t )_b[7 ] * (int16_t )_c[7 ];
1121
+
1122
+ int16x8_t a = vld1q_s16 (_a);
1123
+ int8x8_t b = vld1_s8 (_b);
1124
+ int8x8_t c = vld1_s8 (_c);
1125
+ int16x8_t d = vmlsl_s8 (a, b, c);
1126
+ return
4CDB
validate_int16 (d, d0, d1, d2, d3, d4, d5, d6, d7);
1127
+ }
1110
1128
1111
1129
result_t test_vmlsl_s16 (const NEON2RVV_TEST_IMPL &impl, uint32_t iter) { return TEST_UNIMPL; }
1112
1130
0 commit comments