1012 {
1013 float a[4] = {-1.5f, 0.0f, 3.14159f, 1e10f};
1014 float b[4] = {2.5f, -0.0f, -2.71828f, 1e-10f};
1015 float out[4];
1016
1017 store_f32_4(out, add_f32_4(load_f32_4(a), load_f32_4(b)));
1018 for (int i = 0; i < 4; i++) {
1019 float diff = out[i] - (a[i] + b[i]);
1020 if (diff < -0.001f || diff > 0.001f) return false;
1021 }
1022
1023 store_f32_4(out, sub_f32_4(load_f32_4(a), load_f32_4(b)));
1024 for (int i = 0; i < 4; i++) {
1025 float diff = out[i] - (a[i] - b[i]);
1026 if (diff < -0.001f || diff > 0.001f) return false;
1027 }
1028
1029 store_f32_4(out, mul_f32_4(load_f32_4(a), load_f32_4(b)));
1030 for (int i = 0; i < 4; i++) {
1031 float diff = out[i] - (a[i] * b[i]);
1032 if (diff < -1.0f && diff > 1.0f) return false;
1033 }
1034 return true;
1035}