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