| 361 | // Note: intentionally not const since some compliers (e.g. clang>=19) optimizes it off otherwise |
| 362 | alignas(16) inline volatile int __infMask[4] = {0x7F800000, 0x7F800000, 0x7F800000, 0x7F800000}; |
| 363 | VECTORCALL VECMATH_FINLINE vec4f v_is_not_finite(vec4f a) |
| 364 | { |
| 365 | vec4i ai = v_cast_vec4i(a); |
| 366 | vec4i im = v_ldi((int *)__infMask); |
| 367 | return v_cast_vec4f(v_cmp_eqi(v_andi(ai, im), im)); |
| 368 | } |
| 369 | VECTORCALL VECMATH_FINLINE vec4f v_is_finite(vec4f a) { return v_not(v_is_not_finite(a)); } |
| 370 | VECTORCALL VECMATH_FINLINE vec4f v_is_neg(vec4f a) { return v_cast_vec4f(v_srai(v_cast_vec4i(a), 31)); } |
| 371 | VECTORCALL VECMATH_FINLINE bool v_test_xyzw_nan(vec4f a) { return v_test_any_bit_set(v_is_nan(a)); } |
no test coverage detected