diff options
Diffstat (limited to 'libavcodec/ppc/dsputil_altivec.h')
-rw-r--r-- | libavcodec/ppc/dsputil_altivec.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/libavcodec/ppc/dsputil_altivec.h b/libavcodec/ppc/dsputil_altivec.h index 560d778bbd..218240b6b5 100644 --- a/libavcodec/ppc/dsputil_altivec.h +++ b/libavcodec/ppc/dsputil_altivec.h @@ -101,6 +101,17 @@ do { \ h = vec_mergel (D2, H2); \ } while (0) + +/** \brief loads unaligned vector \a *src with offset \a offset + and returns it */ +static inline vector unsigned char unaligned_load(int offset, uint8_t *src) +{ + register vector unsigned char first = vec_ld(offset, src); + register vector unsigned char second = vec_ld(offset+15, src); + register vector unsigned char mask = vec_lvsl(offset, src); + return vec_perm(first, second, mask); +} + #endif /* HAVE_ALTIVEC */ #endif /* _DSPUTIL_ALTIVEC_ */ |