Blender  V3.3
Classes | Macros | Functions
avxf.h File Reference

Go to the source code of this file.

Classes

struct  avxf
 

Macros

#define _mm256_set_m128(hi, lo)    _mm256_insertf128_ps(_mm256_castps128_ps256(lo), (hi), 0x1)
 
#define _mm256_loadu2_m128(hiaddr, loaddr)    _mm256_set_m128(_mm_loadu_ps(hiaddr), _mm_loadu_ps(loaddr))
 

Functions

__forceinline avxf cross (const avxf &a, const avxf &b)
 
__forceinline void dot3 (const avxf &a, const avxf &b, float &den, float &den2)
 
__forceinline const avxf cast (const __m256i &a)
 Unary Operators. More...
 
__forceinline const avxf mm256_sqrt (const avxf &a)
 
__forceinline const avxf operator+ (const avxf &a, const avxf &b)
 Binary Operators. More...
 
__forceinline const avxf operator+ (const avxf &a, const float &b)
 
__forceinline const avxf operator+ (const float &a, const avxf &b)
 
__forceinline const avxf operator- (const avxf &a, const avxf &b)
 
__forceinline const avxf operator- (const avxf &a, const float &b)
 
__forceinline const avxf operator- (const float &a, const avxf &b)
 
__forceinline const avxf operator* (const avxf &a, const avxf &b)
 
__forceinline const avxf operator* (const avxf &a, const float &b)
 
__forceinline const avxf operator* (const float &a, const avxf &b)
 
__forceinline const avxf operator/ (const avxf &a, const avxf &b)
 
__forceinline const avxf operator/ (const avxf &a, const float &b)
 
__forceinline const avxf operator/ (const float &a, const avxf &b)
 
__forceinline const avxf operator| (const avxf &a, const avxf &b)
 
__forceinline const avxf operator^ (const avxf &a, const avxf &b)
 
__forceinline const avxf operator& (const avxf &a, const avxf &b)
 
__forceinline const avxf max (const avxf &a, const avxf &b)
 
__forceinline const avxf min (const avxf &a, const avxf &b)
 
__forceinline const avxf shuffle (const avxf &a, const __m256i &shuf)
 Movement/Shifting/Shuffling Functions. More...
 
template<int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7>
__forceinline const avxf shuffle (const avxf &a)
 
template<size_t i0, size_t i1, size_t i2, size_t i3>
__forceinline const avxf shuffle (const avxf &a, const avxf &b)
 
template<size_t i0, size_t i1, size_t i2, size_t i3>
__forceinline const avxf shuffle (const avxf &a)
 
template<size_t i0>
__forceinline const avxf shuffle (const avxf &a, const avxf &b)
 
template<size_t i0>
__forceinline const avxf shuffle (const avxf &a)
 
template<size_t i>
__forceinline float extract (const avxf &a)
 
template<>
__forceinline float extract< 0 > (const avxf &a)
 
__forceinline ssef low (const avxf &a)
 
__forceinline ssef high (const avxf &a)
 
template<int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7>
__forceinline const avxf permute (const avxf &a)
 
template<int S0, int S1, int S2, int S3, int S4, int S5, int S6, int S7>
ccl_device_inline const avxf set_sign_bit (const avxf &a)
 
template<size_t S0, size_t S1, size_t S2, size_t S3, size_t S4, size_t S5, size_t S6, size_t S7>
ccl_device_inline const avxf blend (const avxf &a, const avxf &b)
 
template<size_t S0, size_t S1, size_t S2, size_t S3>
ccl_device_inline const avxf blend (const avxf &a, const avxf &b)
 
__forceinline avxf maxi (const avxf &a, const avxf &b)
 
__forceinline avxf mini (const avxf &a, const avxf &b)
 
__forceinline const avxf madd (const avxf &a, const avxf &b, const avxf &c)
 Ternary Operators. More...
 
__forceinline const avxf nmadd (const avxf &a, const avxf &b, const avxf &c)
 
__forceinline const avxf msub (const avxf &a, const avxf &b, const avxf &c)
 
__forceinline const avxb operator<= (const avxf &a, const avxf &b)
 Comparison Operators + Select. More...
 
__forceinline const avxf select (const avxb &m, const avxf &t, const avxf &f)
 
__forceinline avxf mix (const avxf &a, const avxf &b, const avxf &t)
 Common Functions. More...
 

Macro Definition Documentation

◆ _mm256_loadu2_m128

#define _mm256_loadu2_m128 (   hiaddr,
  loaddr 
)     _mm256_set_m128(_mm_loadu_ps(hiaddr), _mm_loadu_ps(loaddr))

Definition at line 374 of file avxf.h.

◆ _mm256_set_m128

#define _mm256_set_m128 (   hi,
  lo 
)     _mm256_insertf128_ps(_mm256_castps128_ps256(lo), (hi), 0x1)

Definition at line 370 of file avxf.h.

Function Documentation

◆ blend() [1/2]

template<size_t S0, size_t S1, size_t S2, size_t S3, size_t S4, size_t S5, size_t S6, size_t S7>
ccl_device_inline const avxf blend ( const avxf a,
const avxf b 
)

Definition at line 292 of file avxf.h.

References Freestyle::a, and usdtokens::b().

◆ blend() [2/2]

template<size_t S0, size_t S1, size_t S2, size_t S3>
ccl_device_inline const avxf blend ( const avxf a,
const avxf b 
)

Definition at line 299 of file avxf.h.

References Freestyle::a, and usdtokens::b().

◆ cast()

__forceinline const avxf cast ( const __m256i &  a)

Unary Operators.

Definition at line 130 of file avxf.h.

References Freestyle::a.

◆ cross()

__forceinline avxf cross ( const avxf a,
const avxf b 
)

Definition at line 106 of file avxf.h.

References Freestyle::a, usdtokens::b(), and r.

◆ dot3()

__forceinline void dot3 ( const avxf a,
const avxf b,
float den,
float den2 
)

Definition at line 119 of file avxf.h.

References Freestyle::a, usdtokens::b(), and t.

Referenced by form_factor_quad(), move_profile_plane(), portalReachTolerance(), and TEST().

◆ extract()

template<size_t i>
__forceinline float extract ( const avxf a)

Definition at line 254 of file avxf.h.

References Freestyle::a, and usdtokens::b().

◆ extract< 0 >()

template<>
__forceinline float extract< 0 > ( const avxf a)

Definition at line 259 of file avxf.h.

References Freestyle::a.

Referenced by BVHObjectBinning::BVHObjectBinning(), reduce_add(), reduce_max(), and reduce_min().

◆ high()

__forceinline ssef high ( const avxf a)

◆ low()

__forceinline ssef low ( const avxf a)

◆ madd()

__forceinline const avxf madd ( const avxf a,
const avxf b,
const avxf c 
)

Ternary Operators.

Definition at line 321 of file avxf.h.

References Freestyle::a, usdtokens::b(), and Freestyle::c.

Referenced by mix(), ray_triangle_dot(), TEST(), transform_direction(), and transform_point().

◆ max()

__forceinline const avxf max ( const avxf a,
const avxf b 
)

Definition at line 211 of file avxf.h.

References Freestyle::a, and usdtokens::b().

◆ maxi()

__forceinline avxf maxi ( const avxf a,
const avxf b 
)

Definition at line 305 of file avxf.h.

References Freestyle::a, and usdtokens::b().

◆ min()

__forceinline const avxf min ( const avxf a,
const avxf b 
)

Definition at line 215 of file avxf.h.

References Freestyle::a, and usdtokens::b().

◆ mini()

__forceinline avxf mini ( const avxf a,
const avxf b 
)

Definition at line 311 of file avxf.h.

References Freestyle::a, and usdtokens::b().

◆ mix()

__forceinline avxf mix ( const avxf a,
const avxf b,
const avxf t 
)

Common Functions.

Definition at line 364 of file avxf.h.

References Freestyle::a, usdtokens::b(), madd(), and t.

◆ mm256_sqrt()

__forceinline const avxf mm256_sqrt ( const avxf a)

Definition at line 135 of file avxf.h.

References Freestyle::a.

Referenced by TEST().

◆ msub()

__forceinline const avxf msub ( const avxf a,
const avxf b,
const avxf c 
)

Definition at line 338 of file avxf.h.

References Freestyle::a, usdtokens::b(), and Freestyle::c.

Referenced by cross(), ray_triangle_cross(), and TEST().

◆ nmadd()

__forceinline const avxf nmadd ( const avxf a,
const avxf b,
const avxf c 
)

Definition at line 330 of file avxf.h.

References Freestyle::a, usdtokens::b(), and Freestyle::c.

Referenced by TEST().

◆ operator&()

__forceinline const avxf operator& ( const avxf a,
const avxf b 
)

Definition at line 206 of file avxf.h.

References Freestyle::a, and usdtokens::b().

◆ operator*() [1/3]

__forceinline const avxf operator* ( const avxf a,
const avxf b 
)

Definition at line 170 of file avxf.h.

References Freestyle::a, and usdtokens::b().

◆ operator*() [2/3]

__forceinline const avxf operator* ( const avxf a,
const float b 
)

Definition at line 174 of file avxf.h.

References Freestyle::a, and usdtokens::b().

◆ operator*() [3/3]

__forceinline const avxf operator* ( const float a,
const avxf b 
)

Definition at line 178 of file avxf.h.

References Freestyle::a, and usdtokens::b().

◆ operator+() [1/3]

__forceinline const avxf operator+ ( const avxf a,
const avxf b 
)

Binary Operators.

Definition at line 144 of file avxf.h.

References Freestyle::a, and usdtokens::b().

◆ operator+() [2/3]

__forceinline const avxf operator+ ( const avxf a,
const float b 
)

Definition at line 148 of file avxf.h.

References Freestyle::a, and usdtokens::b().

◆ operator+() [3/3]

__forceinline const avxf operator+ ( const float a,
const avxf b 
)

Definition at line 152 of file avxf.h.

References Freestyle::a, and usdtokens::b().

◆ operator-() [1/3]

__forceinline const avxf operator- ( const avxf a,
const avxf b 
)

Definition at line 157 of file avxf.h.

References Freestyle::a, and usdtokens::b().

◆ operator-() [2/3]

__forceinline const avxf operator- ( const avxf a,
const float b 
)

Definition at line 161 of file avxf.h.

References Freestyle::a, and usdtokens::b().

◆ operator-() [3/3]

__forceinline const avxf operator- ( const float a,
const avxf b 
)

Definition at line 165 of file avxf.h.

References Freestyle::a, and usdtokens::b().

◆ operator/() [1/3]

__forceinline const avxf operator/ ( const avxf a,
const avxf b 
)

Definition at line 183 of file avxf.h.

References Freestyle::a, and usdtokens::b().

◆ operator/() [2/3]

__forceinline const avxf operator/ ( const avxf a,
const float b 
)

Definition at line 187 of file avxf.h.

References Freestyle::a, and usdtokens::b().

◆ operator/() [3/3]

__forceinline const avxf operator/ ( const float a,
const avxf b 
)

Definition at line 191 of file avxf.h.

References Freestyle::a, and usdtokens::b().

◆ operator<=()

__forceinline const avxb operator<= ( const avxf a,
const avxf b 
)

Comparison Operators + Select.

Definition at line 350 of file avxf.h.

References Freestyle::a, and usdtokens::b().

◆ operator^()

__forceinline const avxf operator^ ( const avxf a,
const avxf b 
)

Definition at line 201 of file avxf.h.

References Freestyle::a, and usdtokens::b().

◆ operator|()

__forceinline const avxf operator| ( const avxf a,
const avxf b 
)

Definition at line 196 of file avxf.h.

References Freestyle::a, and usdtokens::b().

◆ permute()

template<int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7>
__forceinline const avxf permute ( const avxf a)

Definition at line 274 of file avxf.h.

References Freestyle::a, and i1.

◆ select()

__forceinline const avxf select ( const avxb m,
const avxf t,
const avxf f 
)

Definition at line 355 of file avxf.h.

References t.

◆ set_sign_bit()

template<int S0, int S1, int S2, int S3, int S4, int S5, int S6, int S7>
ccl_device_inline const avxf set_sign_bit ( const avxf a)

Definition at line 286 of file avxf.h.

References Freestyle::a.

◆ shuffle() [1/6]

template<int i0, int i1, int i2, int i3, int i4, int i5, int i6, int i7>
__forceinline const avxf shuffle ( const avxf a)

Definition at line 230 of file avxf.h.

References Freestyle::a, and i1.

◆ shuffle() [2/6]

template<size_t i0, size_t i1, size_t i2, size_t i3>
__forceinline const avxf shuffle ( const avxf a)

Definition at line 241 of file avxf.h.

References Freestyle::a.

◆ shuffle() [3/6]

template<size_t i0>
__forceinline const avxf shuffle ( const avxf a)

Definition at line 249 of file avxf.h.

References Freestyle::a.

◆ shuffle() [4/6]

__forceinline const avxf shuffle ( const avxf a,
const __m256i &  shuf 
)

Movement/Shifting/Shuffling Functions.

Definition at line 224 of file avxf.h.

References Freestyle::a.

◆ shuffle() [5/6]

template<size_t i0, size_t i1, size_t i2, size_t i3>
__forceinline const avxf shuffle ( const avxf a,
const avxf b 
)

Definition at line 236 of file avxf.h.

References Freestyle::a, usdtokens::b(), and i1.

◆ shuffle() [6/6]

template<size_t i0>
__forceinline const avxf shuffle ( const avxf a,
const avxf b 
)

Definition at line 245 of file avxf.h.

References Freestyle::a, and usdtokens::b().