Skip to content

Commit

Permalink
Add mad() function
Browse files Browse the repository at this point in the history
Plus min and max to intN
  • Loading branch information
redorav committed Oct 13, 2019
1 parent 58dc5ee commit e656efd
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 0 deletions.
5 changes: 5 additions & 0 deletions include/hlsl++_vector_double.h
Expand Up @@ -815,6 +815,11 @@ namespace hlslpp
hlslpp_inline double3 min(const double3& f1, const double3& f2) { return double3(_hlslpp_min_pd(f1.vec0, f2.vec0), _hlslpp_min_pd(f1.vec1, f2.vec1)); }
hlslpp_inline double4 min(const double4& f1, const double4& f2) { return double4(_hlslpp_min_pd(f1.vec0, f2.vec0), _hlslpp_min_pd(f1.vec1, f2.vec1)); }

hlslpp_inline double1 mad(const double1& f1, const double1& f2, const double1& f3) { return double1(_hlslpp_madd_pd(f1.vec, f2.vec, f3.vec)); }
hlslpp_inline double2 mad(const double2& f1, const double2& f2, const double2& f3) { return double2(_hlslpp_madd_pd(f1.vec, f2.vec, f3.vec)); }
hlslpp_inline double3 mad(const double3& f1, const double3& f2, const double3& f3) { return double3(_hlslpp_madd_pd(f1.vec0, f2.vec0, f3.vec0), _hlslpp_madd_pd(f1.vec1, f2.vec1, f3.vec1)); }
hlslpp_inline double4 mad(const double4& f1, const double4& f2, const double4& f3) { return double4(_hlslpp_madd_pd(f1.vec0, f2.vec0, f3.vec0), _hlslpp_madd_pd(f1.vec1, f2.vec1, f3.vec1)); }

hlslpp_inline double1 max(const double1& f1, const double1& f2) { return double1(_hlslpp_max_pd(f1.vec, f2.vec)); }
hlslpp_inline double2 max(const double2& f1, const double2& f2) { return double2(_hlslpp_max_pd(f1.vec, f2.vec)); }
hlslpp_inline double3 max(const double3& f1, const double3& f2) { return double3(_hlslpp_max_pd(f1.vec0, f2.vec0), _hlslpp_max_pd(f1.vec1, f2.vec1)); }
Expand Down
5 changes: 5 additions & 0 deletions include/hlsl++_vector_float.h
Expand Up @@ -1150,6 +1150,11 @@ namespace hlslpp
hlslpp_inline float3 min(const float3& f1, const float3& f2) { return float3(_hlslpp_min_ps(f1.vec, f2.vec)); }
hlslpp_inline float4 min(const float4& f1, const float4& f2) { return float4(_hlslpp_min_ps(f1.vec, f2.vec)); }

hlslpp_inline float1 mad(const float1& f1, const float1& f2, const float1& f3) { return float1(_hlslpp_madd_ps(f1.vec, f2.vec, f3.vec)); }
hlslpp_inline float2 mad(const float2& f1, const float2& f2, const float2& f3) { return float2(_hlslpp_madd_ps(f1.vec, f2.vec, f3.vec)); }
hlslpp_inline float3 mad(const float3& f1, const float3& f2, const float3& f3) { return float3(_hlslpp_madd_ps(f1.vec, f2.vec, f3.vec)); }
hlslpp_inline float4 mad(const float4& f1, const float4& f2, const float4& f3) { return float4(_hlslpp_madd_ps(f1.vec, f2.vec, f3.vec)); }

hlslpp_inline float1 max(const float1& f1, const float1& f2) { return float1(_hlslpp_max_ps(f1.vec, f2.vec)); }
hlslpp_inline float2 max(const float2& f1, const float2& f2) { return float2(_hlslpp_max_ps(f1.vec, f2.vec)); }
hlslpp_inline float3 max(const float3& f1, const float3& f2) { return float3(_hlslpp_max_ps(f1.vec, f2.vec)); }
Expand Down
2 changes: 2 additions & 0 deletions include/hlsl++_vector_float8.h
Expand Up @@ -607,6 +607,8 @@ namespace hlslpp

hlslpp_inline float8 min(const float8& f1, const float8& f2) { return float8(_hlslpp256_min_ps(f1.vec, f2.vec)); }

hlslpp_inline float8 mad(const float8& f1, const float8& f2, const float8& f3) { return float8(_hlslpp256_madd_ps(f1.vec, f2.vec, f3.vec)); }

hlslpp_inline float8 max(const float8& f1, const float8& f2) { return float8(_hlslpp256_max_ps(f1.vec, f2.vec)); }

hlslpp_inline float8 modf(const float8& f1, float8& integerPart)
Expand Down
15 changes: 15 additions & 0 deletions include/hlsl++_vector_int.h
Expand Up @@ -493,6 +493,21 @@ namespace hlslpp
hlslpp_inline int3 abs(const int3& i) { return int3(_hlslpp_abs_epi32(i.vec)); }
hlslpp_inline int4 abs(const int4& i) { return int4(_hlslpp_abs_epi32(i.vec)); }

hlslpp_inline int1 min(const int1& i1, const int1& i2) { return int1(_hlslpp_min_epi32(i1.vec, i2.vec)); }
hlslpp_inline int2 min(const int2& i1, const int2& i2) { return int2(_hlslpp_min_epi32(i1.vec, i2.vec)); }
hlslpp_inline int3 min(const int3& i1, const int3& i2) { return int3(_hlslpp_min_epi32(i1.vec, i2.vec)); }
hlslpp_inline int4 min(const int4& i1, const int4& i2) { return int4(_hlslpp_min_epi32(i1.vec, i2.vec)); }

hlslpp_inline int1 mad(const int1& i1, const int1& i2, const int1& i3) { return int1(_hlslpp_madd_epi32(i1.vec, i2.vec, i3.vec)); }
hlslpp_inline int2 mad(const int2& i1, const int2& i2, const int2& i3) { return int2(_hlslpp_madd_epi32(i1.vec, i2.vec, i3.vec)); }
hlslpp_inline int3 mad(const int3& i1, const int3& i2, const int3& i3) { return int3(_hlslpp_madd_epi32(i1.vec, i2.vec, i3.vec)); }
hlslpp_inline int4 mad(const int4& i1, const int4& i2, const int4& i3) { return int4(_hlslpp_madd_epi32(i1.vec, i2.vec, i3.vec)); }

hlslpp_inline int1 max(const int1& i1, const int1& i2) { return int1(_hlslpp_max_epi32(i1.vec, i2.vec)); }
hlslpp_inline int2 max(const int2& i1, const int2& i2) { return int2(_hlslpp_max_epi32(i1.vec, i2.vec)); }
hlslpp_inline int3 max(const int3& i1, const int3& i2) { return int3(_hlslpp_max_epi32(i1.vec, i2.vec)); }
hlslpp_inline int4 max(const int4& i1, const int4& i2) { return int4(_hlslpp_max_epi32(i1.vec, i2.vec)); }

template<int X>
iswizzle1<X>& iswizzle1<X>::operator = (const int1& i)
{
Expand Down

0 comments on commit e656efd

Please sign in to comment.