inv_txfm_vsx.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /*
  2. * Copyright (c) 2018 The WebM project authors. All Rights Reserved.
  3. *
  4. * Use of this source code is governed by a BSD-style license
  5. * that can be found in the LICENSE file in the root of the source
  6. * tree. An additional intellectual property rights grant can be found
  7. * in the file PATENTS. All contributing project authors may
  8. * be found in the AUTHORS file in the root of the source tree.
  9. */
  10. #ifndef VPX_VPX_DSP_PPC_INV_TXFM_VSX_H_
  11. #define VPX_VPX_DSP_PPC_INV_TXFM_VSX_H_
  12. #include "vpx_dsp/ppc/types_vsx.h"
  13. void vpx_round_store4x4_vsx(int16x8_t *in, int16x8_t *out, uint8_t *dest,
  14. int stride);
  15. void vpx_idct4_vsx(int16x8_t *in, int16x8_t *out);
  16. void vp9_iadst4_vsx(int16x8_t *in, int16x8_t *out);
  17. void vpx_round_store8x8_vsx(int16x8_t *in, uint8_t *dest, int stride);
  18. void vpx_idct8_vsx(int16x8_t *in, int16x8_t *out);
  19. void vp9_iadst8_vsx(int16x8_t *in, int16x8_t *out);
  20. #define LOAD_INPUT16(load, source, offset, step, in) \
  21. in[0] = load(offset, source); \
  22. in[1] = load((step) + (offset), source); \
  23. in[2] = load(2 * (step) + (offset), source); \
  24. in[3] = load(3 * (step) + (offset), source); \
  25. in[4] = load(4 * (step) + (offset), source); \
  26. in[5] = load(5 * (step) + (offset), source); \
  27. in[6] = load(6 * (step) + (offset), source); \
  28. in[7] = load(7 * (step) + (offset), source); \
  29. in[8] = load(8 * (step) + (offset), source); \
  30. in[9] = load(9 * (step) + (offset), source); \
  31. in[10] = load(10 * (step) + (offset), source); \
  32. in[11] = load(11 * (step) + (offset), source); \
  33. in[12] = load(12 * (step) + (offset), source); \
  34. in[13] = load(13 * (step) + (offset), source); \
  35. in[14] = load(14 * (step) + (offset), source); \
  36. in[15] = load(15 * (step) + (offset), source);
  37. void vpx_round_store16x16_vsx(int16x8_t *src0, int16x8_t *src1, uint8_t *dest,
  38. int stride);
  39. void vpx_idct16_vsx(int16x8_t *src0, int16x8_t *src1);
  40. void vpx_iadst16_vsx(int16x8_t *src0, int16x8_t *src1);
  41. #endif // VPX_VPX_DSP_PPC_INV_TXFM_VSX_H_