|
|
@@ -499,6 +499,56 @@ IMPLEMENT_TEST(xyzw , 0xf);
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ BX_FLOAT4_INLINE float4_t float4_icmpeq(float4_t _a, float4_t _b)
|
|
|
+ {
|
|
|
+ float4_t result;
|
|
|
+ result.ixyzw[0] = _a.ixyzw[0] == _b.ixyzw[0] ? 0xffffffff : 0x0;
|
|
|
+ result.ixyzw[1] = _a.ixyzw[1] == _b.ixyzw[1] ? 0xffffffff : 0x0;
|
|
|
+ result.ixyzw[2] = _a.ixyzw[2] == _b.ixyzw[2] ? 0xffffffff : 0x0;
|
|
|
+ result.ixyzw[3] = _a.ixyzw[3] == _b.ixyzw[3] ? 0xffffffff : 0x0;
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ BX_FLOAT4_INLINE float4_t float4_icmplt(float4_t _a, float4_t _b)
|
|
|
+ {
|
|
|
+ float4_t result;
|
|
|
+ result.ixyzw[0] = _a.ixyzw[0] < _b.ixyzw[0] ? 0xffffffff : 0x0;
|
|
|
+ result.ixyzw[1] = _a.ixyzw[1] < _b.ixyzw[1] ? 0xffffffff : 0x0;
|
|
|
+ result.ixyzw[2] = _a.ixyzw[2] < _b.ixyzw[2] ? 0xffffffff : 0x0;
|
|
|
+ result.ixyzw[3] = _a.ixyzw[3] < _b.ixyzw[3] ? 0xffffffff : 0x0;
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ BX_FLOAT4_INLINE float4_t float4_icmpgt(float4_t _a, float4_t _b)
|
|
|
+ {
|
|
|
+ float4_t result;
|
|
|
+ result.ixyzw[0] = _a.ixyzw[0] > _b.ixyzw[0] ? 0xffffffff : 0x0;
|
|
|
+ result.ixyzw[1] = _a.ixyzw[1] > _b.ixyzw[1] ? 0xffffffff : 0x0;
|
|
|
+ result.ixyzw[2] = _a.ixyzw[2] > _b.ixyzw[2] ? 0xffffffff : 0x0;
|
|
|
+ result.ixyzw[3] = _a.ixyzw[3] > _b.ixyzw[3] ? 0xffffffff : 0x0;
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ BX_FLOAT4_INLINE float4_t float4_imin(float4_t _a, float4_t _b)
|
|
|
+ {
|
|
|
+ float4_t result;
|
|
|
+ result.ixyzw[0] = _a.ixyzw[0] < _b.ixyzw[0] ? _a.ixyzw[0] : _b.ixyzw[0];
|
|
|
+ result.ixyzw[1] = _a.ixyzw[1] < _b.ixyzw[1] ? _a.ixyzw[1] : _b.ixyzw[1];
|
|
|
+ result.ixyzw[2] = _a.ixyzw[2] < _b.ixyzw[2] ? _a.ixyzw[2] : _b.ixyzw[2];
|
|
|
+ result.ixyzw[3] = _a.ixyzw[3] < _b.ixyzw[3] ? _a.ixyzw[3] : _b.ixyzw[3];
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ BX_NO_INLINE float4_t float4_imax(float4_t _a, float4_t _b)
|
|
|
+ {
|
|
|
+ float4_t result;
|
|
|
+ result.ixyzw[0] = _a.ixyzw[0] > _b.ixyzw[0] ? _a.ixyzw[0] : _b.ixyzw[0];
|
|
|
+ result.ixyzw[1] = _a.ixyzw[1] > _b.ixyzw[1] ? _a.ixyzw[1] : _b.ixyzw[1];
|
|
|
+ result.ixyzw[2] = _a.ixyzw[2] > _b.ixyzw[2] ? _a.ixyzw[2] : _b.ixyzw[2];
|
|
|
+ result.ixyzw[3] = _a.ixyzw[3] > _b.ixyzw[3] ? _a.ixyzw[3] : _b.ixyzw[3];
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
BX_FLOAT4_INLINE float4_t float4_iadd(float4_t _a, float4_t _b)
|
|
|
{
|
|
|
float4_t result;
|