mirror of
https://github.com/opencv/opencv.git
synced 2025-06-13 04:52:53 +08:00
Merge pull request #21759 from pkubaj:patch-1
This commit is contained in:
commit
12bae51384
@ -324,6 +324,7 @@ VSX_IMPL_1RG(vec_udword2, vec_float4, xvcvspuxds, vec_ctulo)
|
|||||||
#define VSX_IMPL_CONVERT(rt, rg, fnm) \
|
#define VSX_IMPL_CONVERT(rt, rg, fnm) \
|
||||||
VSX_FINLINE(rt) fnm(const rg& a) { return __builtin_convertvector(a, rt); }
|
VSX_FINLINE(rt) fnm(const rg& a) { return __builtin_convertvector(a, rt); }
|
||||||
|
|
||||||
|
#ifndef vec_permi
|
||||||
#if __clang_major__ < 5
|
#if __clang_major__ < 5
|
||||||
// implement vec_permi in a dirty way
|
// implement vec_permi in a dirty way
|
||||||
# define VSX_IMPL_CLANG_4_PERMI(Tvec) \
|
# define VSX_IMPL_CLANG_4_PERMI(Tvec) \
|
||||||
@ -351,12 +352,14 @@ VSX_FINLINE(rt) fnm(const rg& a) { return __builtin_convertvector(a, rt); }
|
|||||||
// vec_xxpermdi is missing little-endian supports in clang 4 just like gcc4
|
// vec_xxpermdi is missing little-endian supports in clang 4 just like gcc4
|
||||||
# define vec_permi(a, b, c) vec_xxpermdi(b, a, (3 ^ (((c) & 1) << 1 | (c) >> 1)))
|
# define vec_permi(a, b, c) vec_xxpermdi(b, a, (3 ^ (((c) & 1) << 1 | (c) >> 1)))
|
||||||
#endif // __clang_major__ < 5
|
#endif // __clang_major__ < 5
|
||||||
|
#endif
|
||||||
|
|
||||||
// shift left double by word immediate
|
// shift left double by word immediate
|
||||||
#ifndef vec_sldw
|
#ifndef vec_sldw
|
||||||
# define vec_sldw vec_xxsldwi
|
# define vec_sldw vec_xxsldwi
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if __clang_major__ < 13
|
||||||
// Implement vec_rsqrt since clang only supports vec_rsqrte
|
// Implement vec_rsqrt since clang only supports vec_rsqrte
|
||||||
#ifndef vec_rsqrt
|
#ifndef vec_rsqrt
|
||||||
VSX_FINLINE(vec_float4) vec_rsqrt(const vec_float4& a)
|
VSX_FINLINE(vec_float4) vec_rsqrt(const vec_float4& a)
|
||||||
@ -380,6 +383,7 @@ VSX_FINLINE(vec_udword2) vec_promote(unsigned long long a, int b)
|
|||||||
ret[b & 1] = a;
|
ret[b & 1] = a;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// vec_popcnt should return unsigned but clang has different thought just like gcc in vec_vpopcnt
|
// vec_popcnt should return unsigned but clang has different thought just like gcc in vec_vpopcnt
|
||||||
#define VSX_IMPL_POPCNTU(Tvec, Tvec2, ucast) \
|
#define VSX_IMPL_POPCNTU(Tvec, Tvec2, ucast) \
|
||||||
|
Loading…
Reference in New Issue
Block a user