@@ -15811,35 +15811,275 @@ result_t test_vmaxvq_f64(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) {
15811
15811
#endif // ENABLE_TEST_ALL
15812
15812
}
15813
15813
15814
- result_t test_vminv_s8(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) { return TEST_UNIMPL; }
15814
+ result_t test_vminv_s8(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) {
15815
+ #ifdef ENABLE_TEST_ALL
15816
+ const int8_t *_a = (int8_t *)impl.test_cases_int_pointer1;
15817
+ int8_t _c = INT8_MAX;
15818
+ for (int i = 0; i < 8; i++) {
15819
+ if (_a[i] < _c) {
15820
+ _c = _a[i];
15821
+ }
15822
+ }
15815
15823
15816
- result_t test_vminvq_s8(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) { return TEST_UNIMPL; }
15824
+ int8x8_t a = vld1_s8(_a);
15825
+ int8_t c = vminv_s8(a);
15826
+ return c == _c ? TEST_SUCCESS : TEST_FAIL;
15827
+ #else
15828
+ return TEST_UNIMPL;
15829
+ #endif // ENABLE_TEST_ALL
15830
+ }
15817
15831
15818
- result_t test_vminv_s16(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) { return TEST_UNIMPL; }
15832
+ result_t test_vminvq_s8(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) {
15833
+ #ifdef ENABLE_TEST_ALL
15834
+ const int8_t *_a = (int8_t *)impl.test_cases_int_pointer1;
15835
+ int8_t _c = INT8_MAX;
15836
+ for (int i = 0; i < 16; i++) {
15837
+ if (_a[i] < _c) {
15838
+ _c = _a[i];
15839
+ }
15840
+ }
15819
15841
15820
- result_t test_vminvq_s16(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) { return TEST_UNIMPL; }
15842
+ int8x16_t a = vld1q_s8(_a);
15843
+ int8_t c = vminvq_s8(a);
15844
+ return c == _c ? TEST_SUCCESS : TEST_FAIL;
15845
+ #else
15846
+ return TEST_UNIMPL;
15847
+ #endif // ENABLE_TEST_ALL
15848
+ }
15821
15849
15822
- result_t test_vminv_s32(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) { return TEST_UNIMPL; }
15850
+ result_t test_vminv_s16(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) {
15851
+ #ifdef ENABLE_TEST_ALL
15852
+ const int16_t *_a = (int16_t *)impl.test_cases_int_pointer1;
15853
+ int16_t _c = INT16_MAX;
15854
+ for (int i = 0; i < 4; i++) {
15855
+ if (_a[i] < _c) {
15856
+ _c = _a[i];
15857
+ }
15858
+ }
15859
+
15860
+ int16x4_t a = vld1_s16(_a);
15861
+ int16_t c = vminv_s16(a);
15862
+ return c == _c ? TEST_SUCCESS : TEST_FAIL;
15863
+ #else
15864
+ return TEST_UNIMPL;
15865
+ #endif // ENABLE_TEST_ALL
15866
+ }
15823
15867
15824
- result_t test_vminvq_s32(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) { return TEST_UNIMPL; }
15868
+ result_t test_vminvq_s16(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) {
15869
+ #ifdef ENABLE_TEST_ALL
15870
+ const int16_t *_a = (int16_t *)impl.test_cases_int_pointer1;
15871
+ int16_t _c = INT16_MAX;
15872
+ for (int i = 0; i < 8; i++) {
15873
+ if (_a[i] < _c) {
15874
+ _c = _a[i];
15875
+ }
15876
+ }
15877
+
15878
+ int16x8_t a = vld1q_s16(_a);
15879
+ int16_t c = vminvq_s16(a);
15880
+ return c == _c ? TEST_SUCCESS : TEST_FAIL;
15881
+ #else
15882
+ return TEST_UNIMPL;
15883
+ #endif // ENABLE_TEST_ALL
15884
+ }
15825
15885
15826
- result_t test_vminv_u8(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) { return TEST_UNIMPL; }
15886
+ result_t test_vminv_s32(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) {
15887
+ #ifdef ENABLE_TEST_ALL
15888
+ const int32_t *_a = (int32_t *)impl.test_cases_int_pointer1;
15889
+ int32_t _c = INT32_MAX;
15890
+ for (int i = 0; i < 2; i++) {
15891
+ if (_a[i] < _c) {
15892
+ _c = _a[i];
15893
+ }
15894
+ }
15827
15895
15828
- result_t test_vminvq_u8(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) { return TEST_UNIMPL; }
15896
+ int32x2_t a = vld1_s32(_a);
15897
+ int32_t c = vminv_s32(a);
15898
+ return c == _c ? TEST_SUCCESS : TEST_FAIL;
15899
+ #else
15900
+ return TEST_UNIMPL;
15901
+ #endif // ENABLE_TEST_ALL
15902
+ }
15829
15903
15830
- result_t test_vminv_u16(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) { return TEST_UNIMPL; }
15904
+ result_t test_vminvq_s32(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) {
15905
+ #ifdef ENABLE_TEST_ALL
15906
+ const int32_t *_a = (int32_t *)impl.test_cases_int_pointer1;
15907
+ int32_t _c = INT32_MAX;
15908
+ for (int i = 0; i < 4; i++) {
15909
+ if (_a[i] < _c) {
15910
+ _c = _a[i];
15911
+ }
15912
+ }
15831
15913
15832
- result_t test_vminvq_u16(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) { return TEST_UNIMPL; }
15914
+ int32x4_t a = vld1q_s32(_a);
15915
+ int32_t c = vminvq_s32(a);
15916
+ return c == _c ? TEST_SUCCESS : TEST_FAIL;
15917
+ #else
15918
+ return TEST_UNIMPL;
15919
+ #endif // ENABLE_TEST_ALL
15920
+ }
15833
15921
15834
- result_t test_vminv_u32(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) { return TEST_UNIMPL; }
15922
+ result_t test_vminv_u8(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) {
15923
+ #ifdef ENABLE_TEST_ALL
15924
+ const uint8_t *_a = (uint8_t *)impl.test_cases_int_pointer1;
15925
+ uint8_t _c = UINT8_MAX;
15926
+ for (int i = 0; i < 8; i++) {
15927
+ if (_a[i] < _c) {
15928
+ _c = _a[i];
15929
+ }
15930
+ }
15835
15931
15836
- result_t test_vminvq_u32(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) { return TEST_UNIMPL; }
15932
+ uint8x8_t a = vld1_u8(_a);
15933
+ uint8_t c = vminv_u8(a);
15934
+ return c == _c ? TEST_SUCCESS : TEST_FAIL;
15935
+ #else
15936
+ return TEST_UNIMPL;
15937
+ #endif // ENABLE_TEST_ALL
15938
+ }
15837
15939
15838
- result_t test_vminv_f32(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) { return TEST_UNIMPL; }
15940
+ result_t test_vminvq_u8(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) {
15941
+ #ifdef ENABLE_TEST_ALL
15942
+ const uint8_t *_a = (uint8_t *)impl.test_cases_int_pointer1;
15943
+ uint8_t _c = UINT8_MAX;
15944
+ for (int i = 0; i < 16; i++) {
15945
+ if (_a[i] < _c) {
15946
+ _c = _a[i];
15947
+ }
15948
+ }
15839
15949
15840
- result_t test_vminvq_f32(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) { return TEST_UNIMPL; }
15950
+ uint8x16_t a = vld1q_u8(_a);
15951
+ uint8_t c = vminvq_u8(a);
15952
+ return c == _c ? TEST_SUCCESS : TEST_FAIL;
15953
+ #else
15954
+ return TEST_UNIMPL;
15955
+ #endif // ENABLE_TEST_ALL
15956
+ }
15841
15957
15842
- result_t test_vminvq_f64(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) { return TEST_UNIMPL; }
15958
+ result_t test_vminv_u16(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) {
15959
+ #ifdef ENABLE_TEST_ALL
15960
+ const uint16_t *_a = (uint16_t *)impl.test_cases_int_pointer1;
15961
+ uint16_t _c = UINT16_MAX;
15962
+ for (int i = 0; i < 4; i++) {
15963
+ if (_a[i] < _c) {
15964
+ _c = _a[i];
15965
+ }
15966
+ }
15967
+
15968
+ uint16x4_t a = vld1_u16(_a);
15969
+ uint16_t c = vminv_u16(a);
15970
+ return c == _c ? TEST_SUCCESS : TEST_FAIL;
15971
+ #else
15972
+ return TEST_UNIMPL;
15973
+ #endif // ENABLE_TEST_ALL
15974
+ }
15975
+
15976
+ result_t test_vminvq_u16(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) {
15977
+ #ifdef ENABLE_TEST_ALL
15978
+ const uint16_t *_a = (uint16_t *)impl.test_cases_int_pointer1;
15979
+ uint16_t _c = UINT16_MAX;
15980
+ for (int i = 0; i < 8; i++) {
15981
+ if (_a[i] < _c) {
15982
+ _c = _a[i];
15983
+ }
15984
+ }
15985
+
15986
+ uint16x8_t a = vld1q_u16(_a);
15987
+ uint16_t c = vminvq_u16(a);
15988
+ return c == _c ? TEST_SUCCESS : TEST_FAIL;
15989
+ #else
15990
+ return TEST_UNIMPL;
15991
+ #endif // ENABLE_TEST_ALL
15992
+ }
15993
+
15994
+ result_t test_vminv_u32(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) {
15995
+ #ifdef ENABLE_TEST_ALL
15996
+ const uint32_t *_a = (uint32_t *)impl.test_cases_int_pointer1;
15997
+ uint32_t _c = UINT32_MAX;
15998
+ for (int i = 0; i < 2; i++) {
15999
+ if (_a[i] < _c) {
16000
+ _c = _a[i];
16001
+ }
16002
+ }
16003
+
16004
+ uint32x2_t a = vld1_u32(_a);
16005
+ uint32_t c = vminv_u32(a);
16006
+ return c == _c ? TEST_SUCCESS : TEST_FAIL;
16007
+ #else
16008
+ return TEST_UNIMPL;
16009
+ #endif // ENABLE_TEST_ALL
16010
+ }
16011
+
16012
+ result_t test_vminvq_u32(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) {
16013
+ #ifdef ENABLE_TEST_ALL
16014
+ const uint32_t *_a = (uint32_t *)impl.test_cases_int_pointer1;
16015
+ uint32_t _c = UINT32_MAX;
16016
+ for (int i = 0; i < 4; i++) {
16017
+ if (_a[i] < _c) {
16018
+ _c = _a[i];
16019
+ }
16020
+ }
16021
+
16022
+ uint32x4_t a = vld1q_u32(_a);
16023
+ uint32_t c = vminvq_u32(a);
16024
+ return c == _c ? TEST_SUCCESS : TEST_FAIL;
16025
+ #else
16026
+ return TEST_UNIMPL;
16027
+ #endif // ENABLE_TEST_ALL
16028
+ }
16029
+
16030
+ result_t test_vminv_f32(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) {
16031
+ #ifdef ENABLE_TEST_ALL
16032
+ const float *_a = (float *)impl.test_cases_float_pointer1;
16033
+ float _c = FLT_MAX;
16034
+ for (int i = 0; i < 2; i++) {
16035
+ if (_a[i] < _c) {
16036
+ _c = _a[i];
16037
+ }
16038
+ }
16039
+
16040
+ float32x2_t a = vld1_f32(_a);
16041
+ float32_t c = vminv_f32(a);
16042
+ return c == _c ? TEST_SUCCESS : TEST_FAIL;
16043
+ #else
16044
+ return TEST_UNIMPL;
16045
+ #endif // ENABLE_TEST_ALL
16046
+ }
16047
+
16048
+ result_t test_vminvq_f32(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) {
16049
+ #ifdef ENABLE_TEST_ALL
16050
+ const float *_a = (float *)impl.test_cases_float_pointer1;
16051
+ float _c = FLT_MAX;
16052
+ for (int i = 0; i < 4; i++) {
16053
+ if (_a[i] < _c) {
16054
+ _c = _a[i];
16055
+ }
16056
+ }
16057
+
16058
+ float32x4_t a = vld1q_f32(_a);
16059
+ float32_t c = vminvq_f32(a);
16060
+ return c == _c ? TEST_SUCCESS : TEST_FAIL;
16061
+ #else
16062
+ return TEST_UNIMPL;
16063
+ #endif // ENABLE_TEST_ALL
16064
+ }
16065
+
16066
+ result_t test_vminvq_f64(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) {
16067
+ #ifdef ENABLE_TEST_ALL
16068
+ const double *_a = (double *)impl.test_cases_float_pointer1;
16069
+ double _c = DBL_MAX;
16070
+ for (int i = 0; i < 2; i++) {
16071
+ if (_a[i] < _c) {
16072
+ _c = _a[i];
16073
+ }
16074
+ }
16075
+
16076
+ float64x2_t a = vld1q_f64(_a);
16077
+ float64_t c = vminvq_f64(a);
16078
+ return c == _c ? TEST_SUCCESS : TEST_FAIL;
16079
+ #else
16080
+ return TEST_UNIMPL;
16081
+ #endif // ENABLE_TEST_ALL
16082
+ }
15843
16083
15844
16084
result_t test_vmaxnmv_f32(const NEON2RVV_TEST_IMPL &impl, uint32_t iter) { return TEST_UNIMPL; }
15845
16085
0 commit comments