FFmpeg
Macros
generic_macros_msa.h File Reference
#include <stdint.h>
#include <msa.h>
#include <config.h>

Go to the source code of this file.

Macros

#define ALIGNMENT   16
 
#define ALLOC_ALIGNED(align)   __attribute__ ((aligned((align) << 1)))
 
#define LD_V(RTYPE, psrc)   *((RTYPE *)(psrc))
 
#define LD_UB(...)   LD_V(v16u8, __VA_ARGS__)
 
#define LD_SB(...)   LD_V(v16i8, __VA_ARGS__)
 
#define LD_UH(...)   LD_V(v8u16, __VA_ARGS__)
 
#define LD_SH(...)   LD_V(v8i16, __VA_ARGS__)
 
#define LD_UW(...)   LD_V(v4u32, __VA_ARGS__)
 
#define LD_SW(...)   LD_V(v4i32, __VA_ARGS__)
 
#define ST_V(RTYPE, in, pdst)   *((RTYPE *)(pdst)) = (in)
 
#define ST_UB(...)   ST_V(v16u8, __VA_ARGS__)
 
#define ST_SB(...)   ST_V(v16i8, __VA_ARGS__)
 
#define ST_UH(...)   ST_V(v8u16, __VA_ARGS__)
 
#define ST_SH(...)   ST_V(v8i16, __VA_ARGS__)
 
#define ST_UW(...)   ST_V(v4u32, __VA_ARGS__)
 
#define ST_SW(...)   ST_V(v4i32, __VA_ARGS__)
 
#define LH(psrc)
 
#define LW(psrc)
 
#define LD(psrc)
 
#define SH(val, pdst)
 
#define SW(val, pdst)
 
#define SD(val, pdst)
 
#define LW4(psrc, stride, out0, out1, out2, out3)
 
#define LW2(psrc, stride, out0, out1)
 
#define LD2(psrc, stride, out0, out1)
 
#define LD4(psrc, stride, out0, out1, out2, out3)
 
#define SW4(in0, in1, in2, in3, pdst, stride)
 
#define SD4(in0, in1, in2, in3, pdst, stride)
 
#define LD_V2(RTYPE, psrc, stride, out0, out1)
 
#define LD_UB2(...)   LD_V2(v16u8, __VA_ARGS__)
 
#define LD_SB2(...)   LD_V2(v16i8, __VA_ARGS__)
 
#define LD_UH2(...)   LD_V2(v8u16, __VA_ARGS__)
 
#define LD_SH2(...)   LD_V2(v8i16, __VA_ARGS__)
 
#define LD_SW2(...)   LD_V2(v4i32, __VA_ARGS__)
 
#define LD_V3(RTYPE, psrc, stride, out0, out1, out2)
 
#define LD_UB3(...)   LD_V3(v16u8, __VA_ARGS__)
 
#define LD_SB3(...)   LD_V3(v16i8, __VA_ARGS__)
 
#define LD_V4(RTYPE, psrc, stride, out0, out1, out2, out3)
 
#define LD_UB4(...)   LD_V4(v16u8, __VA_ARGS__)
 
#define LD_SB4(...)   LD_V4(v16i8, __VA_ARGS__)
 
#define LD_UH4(...)   LD_V4(v8u16, __VA_ARGS__)
 
#define LD_SH4(...)   LD_V4(v8i16, __VA_ARGS__)
 
#define LD_SW4(...)   LD_V4(v4i32, __VA_ARGS__)
 
#define LD_V5(RTYPE, psrc, stride, out0, out1, out2, out3, out4)
 
#define LD_UB5(...)   LD_V5(v16u8, __VA_ARGS__)
 
#define LD_SB5(...)   LD_V5(v16i8, __VA_ARGS__)
 
#define LD_V6(RTYPE, psrc, stride, out0, out1, out2, out3, out4, out5)
 
#define LD_UB6(...)   LD_V6(v16u8, __VA_ARGS__)
 
#define LD_SB6(...)   LD_V6(v16i8, __VA_ARGS__)
 
#define LD_UH6(...)   LD_V6(v8u16, __VA_ARGS__)
 
#define LD_SH6(...)   LD_V6(v8i16, __VA_ARGS__)
 
#define LD_V7(RTYPE, psrc, stride, out0, out1, out2, out3, out4, out5, out6)
 
#define LD_UB7(...)   LD_V7(v16u8, __VA_ARGS__)
 
#define LD_SB7(...)   LD_V7(v16i8, __VA_ARGS__)
 
#define LD_V8(RTYPE, psrc, stride, out0, out1, out2, out3, out4, out5, out6, out7)
 
#define LD_UB8(...)   LD_V8(v16u8, __VA_ARGS__)
 
#define LD_SB8(...)   LD_V8(v16i8, __VA_ARGS__)
 
#define LD_UH8(...)   LD_V8(v8u16, __VA_ARGS__)
 
#define LD_SH8(...)   LD_V8(v8i16, __VA_ARGS__)
 
#define LD_SW8(...)   LD_V8(v4i32, __VA_ARGS__)
 
#define LD_V16(RTYPE, psrc, stride, out0, out1, out2, out3, out4, out5, out6, out7, out8, out9, out10, out11, out12, out13, out14, out15)
 
#define LD_SH16(...)   LD_V16(v8i16, __VA_ARGS__)
 
#define ST_V2(RTYPE, in0, in1, pdst, stride)
 
#define ST_UB2(...)   ST_V2(v16u8, __VA_ARGS__)
 
#define ST_SB2(...)   ST_V2(v16i8, __VA_ARGS__)
 
#define ST_UH2(...)   ST_V2(v8u16, __VA_ARGS__)
 
#define ST_SH2(...)   ST_V2(v8i16, __VA_ARGS__)
 
#define ST_SW2(...)   ST_V2(v4i32, __VA_ARGS__)
 
#define ST_V4(RTYPE, in0, in1, in2, in3, pdst, stride)
 
#define ST_UB4(...)   ST_V4(v16u8, __VA_ARGS__)
 
#define ST_SB4(...)   ST_V4(v16i8, __VA_ARGS__)
 
#define ST_SH4(...)   ST_V4(v8i16, __VA_ARGS__)
 
#define ST_SW4(...)   ST_V4(v4i32, __VA_ARGS__)
 
#define ST_V6(RTYPE, in0, in1, in2, in3, in4, in5, pdst, stride)
 
#define ST_SH6(...)   ST_V6(v8i16, __VA_ARGS__)
 
#define ST_V8(RTYPE, in0, in1, in2, in3, in4, in5, in6, in7, pdst, stride)
 
#define ST_UB8(...)   ST_V8(v16u8, __VA_ARGS__)
 
#define ST_SH8(...)   ST_V8(v8i16, __VA_ARGS__)
 
#define ST_SW8(...)   ST_V8(v4i32, __VA_ARGS__)
 
#define ST_H1(in, idx, pdst)
 
#define ST_H2(in, idx0, idx1, pdst, stride)
 
#define ST_H4(in, idx0, idx1, idx2, idx3, pdst, stride)
 
#define ST_H8(in, idx0, idx1, idx2, idx3, idx4, idx5, idx6, idx7, pdst, stride)
 
#define ST_W1(in, idx, pdst)
 
#define ST_W2(in, idx0, idx1, pdst, stride)
 
#define ST_W4(in, idx0, idx1, idx2, idx3, pdst, stride)
 
#define ST_W8(in0, in1, idx0, idx1, idx2, idx3, idx4, idx5, idx6, idx7, pdst, stride)
 
#define ST_D1(in, idx, pdst)
 
#define ST_D2(in, idx0, idx1, pdst, stride)
 
#define ST_D4(in0, in1, idx0, idx1, idx2, idx3, pdst, stride)
 
#define ST_D8(in0, in1, in2, in3, idx0, idx1, idx2, idx3, idx4, idx5, idx6, idx7, pdst, stride)
 
#define ST12x8_UB(in0, in1, in2, in3, in4, in5, in6, in7, pdst, stride)
 
#define AVER_UB2(RTYPE, in0, in1, in2, in3, out0, out1)
 
#define AVER_UB2_UB(...)   AVER_UB2(v16u8, __VA_ARGS__)
 
#define AVER_UB4(RTYPE, in0, in1, in2, in3, in4, in5, in6, in7, out0, out1, out2, out3)
 
#define AVER_UB4_UB(...)   AVER_UB4(v16u8, __VA_ARGS__)
 
#define SLDI_B(RTYPE, d, s, slide_val, out)
 
#define SLDI_B2(RTYPE, d0, s0, d1, s1, slide_val, out0, out1)
 
#define SLDI_B2_UB(...)   SLDI_B2(v16u8, __VA_ARGS__)
 
#define SLDI_B2_SB(...)   SLDI_B2(v16i8, __VA_ARGS__)
 
#define SLDI_B2_SH(...)   SLDI_B2(v8i16, __VA_ARGS__)
 
#define SLDI_B2_SW(...)   SLDI_B2(v4i32, __VA_ARGS__)
 
#define SLDI_B3(RTYPE, d0, s0, d1, s1, d2, s2, slide_val, out0, out1, out2)
 
#define SLDI_B3_UB(...)   SLDI_B3(v16u8, __VA_ARGS__)
 
#define SLDI_B3_SB(...)   SLDI_B3(v16i8, __VA_ARGS__)
 
#define SLDI_B3_UH(...)   SLDI_B3(v8u16, __VA_ARGS__)
 
#define SLDI_B4(RTYPE, d0, s0, d1, s1, d2, s2, d3, s3, slide_val, out0, out1, out2, out3)
 
#define SLDI_B4_UB(...)   SLDI_B4(v16u8, __VA_ARGS__)
 
#define SLDI_B4_SB(...)   SLDI_B4(v16i8, __VA_ARGS__)
 
#define SLDI_B4_SH(...)   SLDI_B4(v8i16, __VA_ARGS__)
 
#define VSHF_B2(RTYPE, in0, in1, in2, in3, mask0, mask1, out0, out1)
 
#define VSHF_B2_UB(...)   VSHF_B2(v16u8, __VA_ARGS__)
 
#define VSHF_B2_SB(...)   VSHF_B2(v16i8, __VA_ARGS__)
 
#define VSHF_B2_UH(...)   VSHF_B2(v8u16, __VA_ARGS__)
 
#define VSHF_B2_SH(...)   VSHF_B2(v8i16, __VA_ARGS__)
 
#define VSHF_B3(RTYPE, in0, in1, in2, in3, in4, in5, mask0, mask1, mask2, out0, out1, out2)
 
#define VSHF_B3_SB(...)   VSHF_B3(v16i8, __VA_ARGS__)
 
#define VSHF_B4(RTYPE, in0, in1, mask0, mask1, mask2, mask3, out0, out1, out2, out3)
 
#define VSHF_B4_SB(...)   VSHF_B4(v16i8, __VA_ARGS__)
 
#define VSHF_B4_SH(...)   VSHF_B4(v8i16, __VA_ARGS__)
 
#define VSHF_H2(RTYPE, in0, in1, in2, in3, mask0, mask1, out0, out1)
 
#define VSHF_H2_SH(...)   VSHF_H2(v8i16, __VA_ARGS__)
 
#define VSHF_H3(RTYPE, in0, in1, in2, in3, in4, in5, mask0, mask1, mask2, out0, out1, out2)
 
#define VSHF_H3_SH(...)   VSHF_H3(v8i16, __VA_ARGS__)
 
#define VSHF_W2(RTYPE, in0, in1, in2, in3, mask0, mask1, out0, out1)
 
#define VSHF_W2_SB(...)   VSHF_W2(v16i8, __VA_ARGS__)
 
#define DOTP_UB2(RTYPE, mult0, mult1, cnst0, cnst1, out0, out1)
 
#define DOTP_UB2_UH(...)   DOTP_UB2(v8u16, __VA_ARGS__)
 
#define DOTP_UB4(RTYPE, mult0, mult1, mult2, mult3, cnst0, cnst1, cnst2, cnst3, out0, out1, out2, out3)
 
#define DOTP_UB4_UH(...)   DOTP_UB4(v8u16, __VA_ARGS__)
 
#define DOTP_SB2(RTYPE, mult0, mult1, cnst0, cnst1, out0, out1)
 
#define DOTP_SB2_SH(...)   DOTP_SB2(v8i16, __VA_ARGS__)
 
#define DOTP_SB3(RTYPE, mult0, mult1, mult2, cnst0, cnst1, cnst2, out0, out1, out2)
 
#define DOTP_SB3_SH(...)   DOTP_SB3(v8i16, __VA_ARGS__)
 
#define DOTP_SB4(RTYPE, mult0, mult1, mult2, mult3, cnst0, cnst1, cnst2, cnst3, out0, out1, out2, out3)
 
#define DOTP_SB4_SH(...)   DOTP_SB4(v8i16, __VA_ARGS__)
 
#define DOTP_SH2(RTYPE, mult0, mult1, cnst0, cnst1, out0, out1)
 
#define DOTP_SH2_SW(...)   DOTP_SH2(v4i32, __VA_ARGS__)
 
#define DOTP_SH4(RTYPE, mult0, mult1, mult2, mult3, cnst0, cnst1, cnst2, cnst3, out0, out1, out2, out3)
 
#define DOTP_SH4_SW(...)   DOTP_SH4(v4i32, __VA_ARGS__)
 
#define DPADD_SB2(RTYPE, mult0, mult1, cnst0, cnst1, out0, out1)
 
#define DPADD_SB2_SH(...)   DPADD_SB2(v8i16, __VA_ARGS__)
 
#define DPADD_SB4(RTYPE, mult0, mult1, mult2, mult3, cnst0, cnst1, cnst2, cnst3, out0, out1, out2, out3)
 
#define DPADD_SB4_SH(...)   DPADD_SB4(v8i16, __VA_ARGS__)
 
#define DPADD_UB2(RTYPE, mult0, mult1, cnst0, cnst1, out0, out1)
 
#define DPADD_UB2_UH(...)   DPADD_UB2(v8u16, __VA_ARGS__)
 
#define DPADD_SH2(RTYPE, mult0, mult1, cnst0, cnst1, out0, out1)
 
#define DPADD_SH2_SW(...)   DPADD_SH2(v4i32, __VA_ARGS__)
 
#define DPADD_SH4(RTYPE, mult0, mult1, mult2, mult3, cnst0, cnst1, cnst2, cnst3, out0, out1, out2, out3)
 
#define DPADD_SH4_SW(...)   DPADD_SH4(v4i32, __VA_ARGS__)
 
#define MIN_UH2(RTYPE, in0, in1, min_vec)
 
#define MIN_UH2_UH(...)   MIN_UH2(v8u16, __VA_ARGS__)
 
#define MIN_UH4(RTYPE, in0, in1, in2, in3, min_vec)
 
#define MIN_UH4_UH(...)   MIN_UH4(v8u16, __VA_ARGS__)
 
#define CLIP_SH(in, min, max)
 
#define CLIP_SH_0_255(in)
 
#define CLIP_SH2_0_255(in0, in1)
 
#define CLIP_SH4_0_255(in0, in1, in2, in3)
 
#define CLIP_SH8_0_255(in0, in1, in2, in3, in4, in5, in6, in7)
 
#define CLIP_SW_0_255(in)
 
#define CLIP_SW2_0_255(in0, in1)
 
#define CLIP_SW4_0_255(in0, in1, in2, in3)
 
#define CLIP_SW8_0_255(in0, in1, in2, in3, in4, in5, in6, in7)
 
#define HADD_SW_S32(in)
 
#define HADD_UH_U32(in)
 
#define HADD_SB2(RTYPE, in0, in1, out0, out1)
 
#define HADD_SB2_SH(...)   HADD_SB2(v8i16, __VA_ARGS__)
 
#define HADD_SB4(RTYPE, in0, in1, in2, in3, out0, out1, out2, out3)
 
#define HADD_SB4_UH(...)   HADD_SB4(v8u16, __VA_ARGS__)
 
#define HADD_SB4_SH(...)   HADD_SB4(v8i16, __VA_ARGS__)
 
#define HADD_UB2(RTYPE, in0, in1, out0, out1)
 
#define HADD_UB2_UH(...)   HADD_UB2(v8u16, __VA_ARGS__)
 
#define HADD_UB3(RTYPE, in0, in1, in2, out0, out1, out2)
 
#define HADD_UB3_UH(...)   HADD_UB3(v8u16, __VA_ARGS__)
 
#define HADD_UB4(RTYPE, in0, in1, in2, in3, out0, out1, out2, out3)
 
#define HADD_UB4_UB(...)   HADD_UB4(v16u8, __VA_ARGS__)
 
#define HADD_UB4_UH(...)   HADD_UB4(v8u16, __VA_ARGS__)
 
#define HADD_UB4_SH(...)   HADD_UB4(v8i16, __VA_ARGS__)
 
#define HSUB_UB2(RTYPE, in0, in1, out0, out1)
 
#define HSUB_UB2_UH(...)   HSUB_UB2(v8u16, __VA_ARGS__)
 
#define HSUB_UB2_SH(...)   HSUB_UB2(v8i16, __VA_ARGS__)
 
#define HSUB_UB4(RTYPE, in0, in1, in2, in3, out0, out1, out2, out3)
 
#define HSUB_UB4_UH(...)   HSUB_UB4(v8u16, __VA_ARGS__)
 
#define HSUB_UB4_SH(...)   HSUB_UB4(v8i16, __VA_ARGS__)
 
#define SAD_UB2_UH(in0, in1, ref0, ref1)
 
#define INSERT_W2(RTYPE, in0, in1, out)
 
#define INSERT_W2_UB(...)   INSERT_W2(v16u8, __VA_ARGS__)
 
#define INSERT_W2_SB(...)   INSERT_W2(v16i8, __VA_ARGS__)
 
#define INSERT_W4(RTYPE, in0, in1, in2, in3, out)
 
#define INSERT_W4_UB(...)   INSERT_W4(v16u8, __VA_ARGS__)
 
#define INSERT_W4_SB(...)   INSERT_W4(v16i8, __VA_ARGS__)
 
#define INSERT_W4_SH(...)   INSERT_W4(v8i16, __VA_ARGS__)
 
#define INSERT_W4_SW(...)   INSERT_W4(v4i32, __VA_ARGS__)
 
#define INSERT_D2(RTYPE, in0, in1, out)
 
#define INSERT_D2_UB(...)   INSERT_D2(v16u8, __VA_ARGS__)
 
#define INSERT_D2_SB(...)   INSERT_D2(v16i8, __VA_ARGS__)
 
#define INSERT_D2_SH(...)   INSERT_D2(v8i16, __VA_ARGS__)
 
#define INSERT_D2_SD(...)   INSERT_D2(v2i64, __VA_ARGS__)
 
#define ILVEV_B2(RTYPE, in0, in1, in2, in3, out0, out1)
 
#define ILVEV_B2_UB(...)   ILVEV_B2(v16u8, __VA_ARGS__)
 
#define ILVEV_B2_SB(...)   ILVEV_B2(v16i8, __VA_ARGS__)
 
#define ILVEV_B2_SH(...)   ILVEV_B2(v8i16, __VA_ARGS__)
 
#define ILVEV_B2_SD(...)   ILVEV_B2(v2i64, __VA_ARGS__)
 
#define ILVEV_H2(RTYPE, in0, in1, in2, in3, out0, out1)
 
#define ILVEV_H2_UB(...)   ILVEV_H2(v16u8, __VA_ARGS__)
 
#define ILVEV_H2_SH(...)   ILVEV_H2(v8i16, __VA_ARGS__)
 
#define ILVEV_H2_SW(...)   ILVEV_H2(v4i32, __VA_ARGS__)
 
#define ILVEV_W2(RTYPE, in0, in1, in2, in3, out0, out1)
 
#define ILVEV_W2_UB(...)   ILVEV_W2(v16u8, __VA_ARGS__)
 
#define ILVEV_W2_SB(...)   ILVEV_W2(v16i8, __VA_ARGS__)
 
#define ILVEV_W2_UH(...)   ILVEV_W2(v8u16, __VA_ARGS__)
 
#define ILVEV_W2_SD(...)   ILVEV_W2(v2i64, __VA_ARGS__)
 
#define ILVEV_D2(RTYPE, in0, in1, in2, in3, out0, out1)
 
#define ILVEV_D2_UB(...)   ILVEV_D2(v16u8, __VA_ARGS__)
 
#define ILVEV_D2_SB(...)   ILVEV_D2(v16i8, __VA_ARGS__)
 
#define ILVEV_D2_SW(...)   ILVEV_D2(v4i32, __VA_ARGS__)
 
#define ILVL_B2(RTYPE, in0, in1, in2, in3, out0, out1)
 
#define ILVL_B2_UB(...)   ILVL_B2(v16u8, __VA_ARGS__)
 
#define ILVL_B2_SB(...)   ILVL_B2(v16i8, __VA_ARGS__)
 
#define ILVL_B2_UH(...)   ILVL_B2(v8u16, __VA_ARGS__)
 
#define ILVL_B2_SH(...)   ILVL_B2(v8i16, __VA_ARGS__)
 
#define ILVL_B4(RTYPE, in0, in1, in2, in3, in4, in5, in6, in7, out0, out1, out2, out3)
 
#define ILVL_B4_UB(...)   ILVL_B4(v16u8, __VA_ARGS__)
 
#define ILVL_B4_SB(...)   ILVL_B4(v16i8, __VA_ARGS__)
 
#define ILVL_B4_UH(...)   ILVL_B4(v8u16, __VA_ARGS__)
 
#define ILVL_B4_SH(...)   ILVL_B4(v8i16, __VA_ARGS__)
 
#define ILVL_H2(RTYPE, in0, in1, in2, in3, out0, out1)
 
#define ILVL_H2_SH(...)   ILVL_H2(v8i16, __VA_ARGS__)
 
#define ILVL_H2_SW(...)   ILVL_H2(v4i32, __VA_ARGS__)
 
#define ILVL_H4(RTYPE, in0, in1, in2, in3, in4, in5, in6, in7, out0, out1, out2, out3)
 
#define ILVL_H4_SH(...)   ILVL_H4(v8i16, __VA_ARGS__)
 
#define ILVL_H4_SW(...)   ILVL_H4(v4i32, __VA_ARGS__)
 
#define ILVL_W2(RTYPE, in0, in1, in2, in3, out0, out1)
 
#define ILVL_W2_UB(...)   ILVL_W2(v16u8, __VA_ARGS__)
 
#define ILVL_W2_SB(...)   ILVL_W2(v16i8, __VA_ARGS__)
 
#define ILVL_W2_SH(...)   ILVL_W2(v8i16, __VA_ARGS__)
 
#define ILVR_B2(RTYPE, in0, in1, in2, in3, out0, out1)
 
#define ILVR_B2_UB(...)   ILVR_B2(v16u8, __VA_ARGS__)
 
#define ILVR_B2_SB(...)   ILVR_B2(v16i8, __VA_ARGS__)
 
#define ILVR_B2_UH(...)   ILVR_B2(v8u16, __VA_ARGS__)
 
#define ILVR_B2_SH(...)   ILVR_B2(v8i16, __VA_ARGS__)
 
#define ILVR_B2_SW(...)   ILVR_B2(v4i32, __VA_ARGS__)
 
#define ILVR_B3(RTYPE, in0, in1, in2, in3, in4, in5, out0, out1, out2)
 
#define ILVR_B3_UB(...)   ILVR_B3(v16u8, __VA_ARGS__)
 
#define ILVR_B3_SB(...)   ILVR_B3(v16i8, __VA_ARGS__)
 
#define ILVR_B3_UH(...)   ILVR_B3(v8u16, __VA_ARGS__)
 
#define ILVR_B3_SH(...)   ILVR_B3(v8i16, __VA_ARGS__)
 
#define ILVR_B4(RTYPE, in0, in1, in2, in3, in4, in5, in6, in7, out0, out1, out2, out3)
 
#define ILVR_B4_UB(...)   ILVR_B4(v16u8, __VA_ARGS__)
 
#define ILVR_B4_SB(...)   ILVR_B4(v16i8, __VA_ARGS__)
 
#define ILVR_B4_UH(...)   ILVR_B4(v8u16, __VA_ARGS__)
 
#define ILVR_B4_SH(...)   ILVR_B4(v8i16, __VA_ARGS__)
 
#define ILVR_B4_SW(...)   ILVR_B4(v4i32, __VA_ARGS__)
 
#define ILVR_B8(RTYPE, in0, in1, in2, in3, in4, in5, in6, in7, in8, in9, in10, in11, in12, in13, in14, in15, out0, out1, out2, out3, out4, out5, out6, out7)
 
#define ILVR_B8_UH(...)   ILVR_B8(v8u16, __VA_ARGS__)
 
#define ILVR_B8_SW(...)   ILVR_B8(v4i32, __VA_ARGS__)
 
#define ILVR_H2(RTYPE, in0, in1, in2, in3, out0, out1)
 
#define ILVR_H2_SH(...)   ILVR_H2(v8i16, __VA_ARGS__)
 
#define ILVR_H2_SW(...)   ILVR_H2(v4i32, __VA_ARGS__)
 
#define ILVR_H3(RTYPE, in0, in1, in2, in3, in4, in5, out0, out1, out2)
 
#define ILVR_H3_SH(...)   ILVR_H3(v8i16, __VA_ARGS__)
 
#define ILVR_H4(RTYPE, in0, in1, in2, in3, in4, in5, in6, in7, out0, out1, out2, out3)
 
#define ILVR_H4_SH(...)   ILVR_H4(v8i16, __VA_ARGS__)
 
#define ILVR_H4_SW(...)   ILVR_H4(v4i32, __VA_ARGS__)
 
#define ILVR_W2(RTYPE, in0, in1, in2, in3, out0, out1)
 
#define ILVR_W2_UB(...)   ILVR_W2(v16u8, __VA_ARGS__)
 
#define ILVR_W2_SB(...)   ILVR_W2(v16i8, __VA_ARGS__)
 
#define ILVR_W2_SH(...)   ILVR_W2(v8i16, __VA_ARGS__)
 
#define ILVR_W4(RTYPE, in0, in1, in2, in3, in4, in5, in6, in7, out0, out1, out2, out3)
 
#define ILVR_W4_SB(...)   ILVR_W4(v16i8, __VA_ARGS__)
 
#define ILVR_W4_UB(...)   ILVR_W4(v16u8, __VA_ARGS__)
 
#define ILVR_D2(RTYPE, in0, in1, in2, in3, out0, out1)
 
#define ILVR_D2_UB(...)   ILVR_D2(v16u8, __VA_ARGS__)
 
#define ILVR_D2_SB(...)   ILVR_D2(v16i8, __VA_ARGS__)
 
#define ILVR_D2_SH(...)   ILVR_D2(v8i16, __VA_ARGS__)
 
#define ILVR_D3(RTYPE, in0, in1, in2, in3, in4, in5, out0, out1, out2)
 
#define ILVR_D3_SB(...)   ILVR_D3(v16i8, __VA_ARGS__)
 
#define ILVR_D4(RTYPE, in0, in1, in2, in3, in4, in5, in6, in7, out0, out1, out2, out3)
 
#define ILVR_D4_SB(...)   ILVR_D4(v16i8, __VA_ARGS__)
 
#define ILVR_D4_UB(...)   ILVR_D4(v16u8, __VA_ARGS__)
 
#define ILVL_D2(RTYPE, in0, in1, in2, in3, out0, out1)
 
#define ILVL_D2_UB(...)   ILVL_D2(v16u8, __VA_ARGS__)
 
#define ILVL_D2_SB(...)   ILVL_D2(v16i8, __VA_ARGS__)
 
#define ILVL_D2_SH(...)   ILVL_D2(v8i16, __VA_ARGS__)
 
#define ILVRL_B2(RTYPE, in0, in1, out0, out1)
 
#define ILVRL_B2_UB(...)   ILVRL_B2(v16u8, __VA_ARGS__)
 
#define ILVRL_B2_SB(...)   ILVRL_B2(v16i8, __VA_ARGS__)
 
#define ILVRL_B2_UH(...)   ILVRL_B2(v8u16, __VA_ARGS__)
 
#define ILVRL_B2_SH(...)   ILVRL_B2(v8i16, __VA_ARGS__)
 
#define ILVRL_B2_SW(...)   ILVRL_B2(v4i32, __VA_ARGS__)
 
#define ILVRL_H2(RTYPE, in0, in1, out0, out1)
 
#define ILVRL_H2_UB(...)   ILVRL_H2(v16u8, __VA_ARGS__)
 
#define ILVRL_H2_SB(...)   ILVRL_H2(v16i8, __VA_ARGS__)
 
#define ILVRL_H2_SH(...)   ILVRL_H2(v8i16, __VA_ARGS__)
 
#define ILVRL_H2_SW(...)   ILVRL_H2(v4i32, __VA_ARGS__)
 
#define ILVRL_W2(RTYPE, in0, in1, out0, out1)
 
#define ILVRL_W2_UB(...)   ILVRL_W2(v16u8, __VA_ARGS__)
 
#define ILVRL_W2_SH(...)   ILVRL_W2(v8i16, __VA_ARGS__)
 
#define ILVRL_W2_SW(...)   ILVRL_W2(v4i32, __VA_ARGS__)
 
#define MAXI_SH2(RTYPE, in0, in1, max_val)
 
#define MAXI_SH2_UH(...)   MAXI_SH2(v8u16, __VA_ARGS__)
 
#define MAXI_SH2_SH(...)   MAXI_SH2(v8i16, __VA_ARGS__)
 
#define MAXI_SH4(RTYPE, in0, in1, in2, in3, max_val)
 
#define MAXI_SH4_UH(...)   MAXI_SH4(v8u16, __VA_ARGS__)
 
#define MAXI_SH4_SH(...)   MAXI_SH4(v8i16, __VA_ARGS__)
 
#define MAXI_SH8(RTYPE, in0, in1, in2, in3, in4, in5, in6, in7, max_val)
 
#define MAXI_SH8_UH(...)   MAXI_SH8(v8u16, __VA_ARGS__)
 
#define MAXI_SH8_SH(...)   MAXI_SH8(v8i16, __VA_ARGS__)
 
#define SAT_UH2(RTYPE, in0, in1, sat_val)
 
#define SAT_UH2_UH(...)   SAT_UH2(v8u16, __VA_ARGS__)
 
#define SAT_UH2_SH(...)   SAT_UH2(v8i16, __VA_ARGS__)
 
#define SAT_UH4(RTYPE, in0, in1, in2, in3, sat_val)
 
#define SAT_UH4_UH(...)   SAT_UH4(v8u16, __VA_ARGS__)
 
#define SAT_UH4_SH(...)   SAT_UH4(v8i16, __VA_ARGS__)
 
#define SAT_UH8(RTYPE, in0, in1, in2, in3, in4, in5, in6, in7, sat_val)
 
#define SAT_UH8_UH(...)   SAT_UH8(v8u16, __VA_ARGS__)
 
#define SAT_UH8_SH(...)   SAT_UH8(v8i16, __VA_ARGS__)
 
#define SAT_SH2(RTYPE, in0, in1, sat_val)
 
#define SAT_SH2_SH(...)   SAT_SH2(v8i16, __VA_ARGS__)
 
#define SAT_SH3(RTYPE, in0, in1, in2, sat_val)
 
#define SAT_SH3_SH(...)   SAT_SH3(v8i16, __VA_ARGS__)
 
#define SAT_SH4(RTYPE, in0, in1, in2, in3, sat_val)
 
#define SAT_SH4_SH(...)   SAT_SH4(v8i16, __VA_ARGS__)
 
#define SAT_SW2(RTYPE, in0, in1, sat_val)
 
#define SAT_SW2_SW(...)   SAT_SW2(v4i32, __VA_ARGS__)
 
#define SAT_SW4(RTYPE, in0, in1, in2, in3, sat_val)
 
#define SAT_SW4_SW(...)   SAT_SW4(v4i32, __VA_ARGS__)
 
#define SPLATI_H2(RTYPE, in, idx0, idx1, out0, out1)
 
#define SPLATI_H2_SB(...)   SPLATI_H2(v16i8, __VA_ARGS__)
 
#define SPLATI_H2_SH(...)   SPLATI_H2(v8i16, __VA_ARGS__)
 
#define SPLATI_H3(RTYPE, in, idx0, idx1, idx2, out0, out1, out2)
 
#define SPLATI_H3_SB(...)   SPLATI_H3(v16i8, __VA_ARGS__)
 
#define SPLATI_H3_SH(...)   SPLATI_H3(v8i16, __VA_ARGS__)
 
#define SPLATI_H4(RTYPE, in, idx0, idx1, idx2, idx3, out0, out1, out2, out3)
 
#define SPLATI_H4_SB(...)   SPLATI_H4(v16i8, __VA_ARGS__)
 
#define SPLATI_H4_SH(...)   SPLATI_H4(v8i16, __VA_ARGS__)
 
#define SPLATI_W2(RTYPE, in, stidx, out0, out1)
 
#define SPLATI_W2_SH(...)   SPLATI_W2(v8i16, __VA_ARGS__)
 
#define SPLATI_W2_SW(...)   SPLATI_W2(v4i32, __VA_ARGS__)
 
#define SPLATI_W4(RTYPE, in, out0, out1, out2, out3)
 
#define SPLATI_W4_SH(...)   SPLATI_W4(v8i16, __VA_ARGS__)
 
#define SPLATI_W4_SW(...)   SPLATI_W4(v4i32, __VA_ARGS__)
 
#define PCKEV_B2(RTYPE, in0, in1, in2, in3, out0, out1)
 
#define PCKEV_B2_SB(...)   PCKEV_B2(v16i8, __VA_ARGS__)
 
#define PCKEV_B2_UB(...)   PCKEV_B2(v16u8, __VA_ARGS__)
 
#define PCKEV_B2_SH(...)   PCKEV_B2(v8i16, __VA_ARGS__)
 
#define PCKEV_B2_SW(...)   PCKEV_B2(v4i32, __VA_ARGS__)
 
#define PCKEV_B3(RTYPE, in0, in1, in2, in3, in4, in5, out0, out1, out2)
 
#define PCKEV_B3_UB(...)   PCKEV_B3(v16u8, __VA_ARGS__)
 
#define PCKEV_B3_SB(...)   PCKEV_B3(v16i8, __VA_ARGS__)
 
#define PCKEV_B4(RTYPE, in0, in1, in2, in3, in4, in5, in6, in7, out0, out1, out2, out3)
 
#define PCKEV_B4_SB(...)   PCKEV_B4(v16i8, __VA_ARGS__)
 
#define PCKEV_B4_UB(...)   PCKEV_B4(v16u8, __VA_ARGS__)
 
#define PCKEV_B4_SH(...)   PCKEV_B4(v8i16, __VA_ARGS__)
 
#define PCKEV_B4_SW(...)   PCKEV_B4(v4i32, __VA_ARGS__)
 
#define PCKEV_H2(RTYPE, in0, in1, in2, in3, out0, out1)
 
#define PCKEV_H2_SH(...)   PCKEV_H2(v8i16, __VA_ARGS__)
 
#define PCKEV_H2_SW(...)   PCKEV_H2(v4i32, __VA_ARGS__)
 
#define PCKEV_H4(RTYPE, in0, in1, in2, in3, in4, in5, in6, in7, out0, out1, out2, out3)
 
#define PCKEV_H4_SH(...)   PCKEV_H4(v8i16, __VA_ARGS__)
 
#define PCKEV_H4_SW(...)   PCKEV_H4(v4i32, __VA_ARGS__)
 
#define PCKEV_D2(RTYPE, in0, in1, in2, in3, out0, out1)
 
#define PCKEV_D2_UB(...)   PCKEV_D2(v16u8, __VA_ARGS__)
 
#define PCKEV_D2_SB(...)   PCKEV_D2(v16i8, __VA_ARGS__)
 
#define PCKEV_D2_SH(...)   PCKEV_D2(v8i16, __VA_ARGS__)
 
#define PCKEV_D4(RTYPE, in0, in1, in2, in3, in4, in5, in6, in7, out0, out1, out2, out3)
 
#define PCKEV_D4_UB(...)   PCKEV_D4(v16u8, __VA_ARGS__)
 
#define PCKOD_D2(RTYPE, in0, in1, in2, in3, out0, out1)
 
#define PCKOD_D2_UB(...)   PCKOD_D2(v16u8, __VA_ARGS__)
 
#define PCKOD_D2_SH(...)   PCKOD_D2(v8i16, __VA_ARGS__)
 
#define PCKOD_D2_SD(...)   PCKOD_D2(v2i64, __VA_ARGS__)
 
#define XORI_B2_128(RTYPE, in0, in1)
 
#define XORI_B2_128_UB(...)   XORI_B2_128(v16u8, __VA_ARGS__)
 
#define XORI_B2_128_SB(...)   XORI_B2_128(v16i8, __VA_ARGS__)
 
#define XORI_B2_128_SH(...)   XORI_B2_128(v8i16, __VA_ARGS__)
 
#define XORI_B3_128(RTYPE, in0, in1, in2)
 
#define XORI_B3_128_SB(...)   XORI_B3_128(v16i8, __VA_ARGS__)
 
#define XORI_B4_128(RTYPE, in0, in1, in2, in3)
 
#define XORI_B4_128_UB(...)   XORI_B4_128(v16u8, __VA_ARGS__)
 
#define XORI_B4_128_SB(...)   XORI_B4_128(v16i8, __VA_ARGS__)
 
#define XORI_B4_128_SH(...)   XORI_B4_128(v8i16, __VA_ARGS__)
 
#define XORI_B5_128(RTYPE, in0, in1, in2, in3, in4)
 
#define XORI_B5_128_SB(...)   XORI_B5_128(v16i8, __VA_ARGS__)
 
#define XORI_B6_128(RTYPE, in0, in1, in2, in3, in4, in5)
 
#define XORI_B6_128_SB(...)   XORI_B6_128(v16i8, __VA_ARGS__)
 
#define XORI_B7_128(RTYPE, in0, in1, in2, in3, in4, in5, in6)
 
#define XORI_B7_128_SB(...)   XORI_B7_128(v16i8, __VA_ARGS__)
 
#define XORI_B8_128(RTYPE, in0, in1, in2, in3, in4, in5, in6, in7)
 
#define XORI_B8_128_SB(...)   XORI_B8_128(v16i8, __VA_ARGS__)
 
#define XORI_B8_128_UB(...)   XORI_B8_128(v16u8, __VA_ARGS__)
 
#define ADDS_SH2(RTYPE, in0, in1, in2, in3, out0, out1)
 
#define ADDS_SH2_SH(...)   ADDS_SH2(v8i16, __VA_ARGS__)
 
#define ADDS_SH4(RTYPE, in0, in1, in2, in3, in4, in5, in6, in7, out0, out1, out2, out3)
 
#define ADDS_SH4_UH(...)   ADDS_SH4(v8u16, __VA_ARGS__)
 
#define ADDS_SH4_SH(...)   ADDS_SH4(v8i16, __VA_ARGS__)
 
#define SLLI_2V(in0, in1, shift)
 
#define SLLI_4V(in0, in1, in2, in3, shift)
 
#define SRA_4V(in0, in1, in2, in3, shift)
 
#define SRL_H4(RTYPE, in0, in1, in2, in3, shift)
 
#define SRL_H4_UH(...)   SRL_H4(v8u16, __VA_ARGS__)
 
#define SRLR_H4(RTYPE, in0, in1, in2, in3, shift)
 
#define SRLR_H4_UH(...)   SRLR_H4(v8u16, __VA_ARGS__)
 
#define SRLR_H4_SH(...)   SRLR_H4(v8i16, __VA_ARGS__)
 
#define SRLR_H8(RTYPE, in0, in1, in2, in3, in4, in5, in6, in7, shift)
 
#define SRLR_H8_UH(...)   SRLR_H8(v8u16, __VA_ARGS__)
 
#define SRLR_H8_SH(...)   SRLR_H8(v8i16, __VA_ARGS__)
 
#define SRAR_H2(RTYPE, in0, in1, shift)
 
#define SRAR_H2_UH(...)   SRAR_H2(v8u16, __VA_ARGS__)
 
#define SRAR_H2_SH(...)   SRAR_H2(v8i16, __VA_ARGS__)
 
#define SRAR_H3(RTYPE, in0, in1, in2, shift)
 
#define SRAR_H3_SH(...)   SRAR_H3(v8i16, __VA_ARGS__)
 
#define SRAR_H4(RTYPE, in0, in1, in2, in3, shift)
 
#define SRAR_H4_UH(...)   SRAR_H4(v8u16, __VA_ARGS__)
 
#define SRAR_H4_SH(...)   SRAR_H4(v8i16, __VA_ARGS__)
 
#define SRAR_W2(RTYPE, in0, in1, shift)
 
#define SRAR_W2_SW(...)   SRAR_W2(v4i32, __VA_ARGS__)
 
#define SRAR_W4(RTYPE, in0, in1, in2, in3, shift)
 
#define SRAR_W4_SW(...)   SRAR_W4(v4i32, __VA_ARGS__)
 
#define SRARI_H2(RTYPE, in0, in1, shift)
 
#define SRARI_H2_UH(...)   SRARI_H2(v8u16, __VA_ARGS__)
 
#define SRARI_H2_SH(...)   SRARI_H2(v8i16, __VA_ARGS__)
 
#define SRARI_H4(RTYPE, in0, in1, in2, in3, shift)
 
#define SRARI_H4_UH(...)   SRARI_H4(v8u16, __VA_ARGS__)
 
#define SRARI_H4_SH(...)   SRARI_H4(v8i16, __VA_ARGS__)
 
#define SRARI_W2(RTYPE, in0, in1, shift)
 
#define SRARI_W2_SW(...)   SRARI_W2(v4i32, __VA_ARGS__)
 
#define SRARI_W4(RTYPE, in0, in1, in2, in3, shift)
 
#define SRARI_W4_SH(...)   SRARI_W4(v8i16, __VA_ARGS__)
 
#define SRARI_W4_SW(...)   SRARI_W4(v4i32, __VA_ARGS__)
 
#define MUL2(in0, in1, in2, in3, out0, out1)
 
#define MUL4(in0, in1, in2, in3, in4, in5, in6, in7, out0, out1, out2, out3)
 
#define ADD2(in0, in1, in2, in3, out0, out1)
 
#define ADD4(in0, in1, in2, in3, in4, in5, in6, in7, out0, out1, out2, out3)
 
#define SUB2(in0, in1, in2, in3, out0, out1)
 
#define SUB4(in0, in1, in2, in3, in4, in5, in6, in7, out0, out1, out2, out3)
 
#define UNPCK_R_SB_SH(in, out)
 
#define UNPCK_R_SH_SW(in, out)
 
#define UNPCK_SB_SH(in, out0, out1)
 
#define UNPCK_UB_SH(in, out0, out1)
 
#define UNPCK_SH_SW(in, out0, out1)
 
#define SWAP(in0, in1)
 
#define BUTTERFLY_4(in0, in1, in2, in3, out0, out1, out2, out3)
 
#define BUTTERFLY_8(in0, in1, in2, in3, in4, in5, in6, in7, out0, out1, out2, out3, out4, out5, out6, out7)
 
#define BUTTERFLY_16(in0, in1, in2, in3, in4, in5, in6, in7, in8, in9, in10, in11, in12, in13, in14, in15, out0, out1, out2, out3, out4, out5, out6, out7, out8, out9, out10, out11, out12, out13, out14, out15)
 
#define TRANSPOSE4x4_UB_UB(in0, in1, in2, in3, out0, out1, out2, out3)
 
#define TRANSPOSE8x4_UB(RTYPE, in0, in1, in2, in3, in4, in5, in6, in7, out0, out1, out2, out3)
 
#define TRANSPOSE8x4_UB_UB(...)   TRANSPOSE8x4_UB(v16u8, __VA_ARGS__)
 
#define TRANSPOSE8x4_UB_UH(...)   TRANSPOSE8x4_UB(v8u16, __VA_ARGS__)
 
#define TRANSPOSE8x8_UB(RTYPE, in0, in1, in2, in3, in4, in5, in6, in7, out0, out1, out2, out3, out4, out5, out6, out7)
 
#define TRANSPOSE8x8_UB_UB(...)   TRANSPOSE8x8_UB(v16u8, __VA_ARGS__)
 
#define TRANSPOSE8x8_UB_UH(...)   TRANSPOSE8x8_UB(v8u16, __VA_ARGS__)
 
#define TRANSPOSE16x4_UB_UB(in0, in1, in2, in3, in4, in5, in6, in7, in8, in9, in10, in11, in12, in13, in14, in15, out0, out1, out2, out3)
 
#define TRANSPOSE16x8_UB_UB(in0, in1, in2, in3, in4, in5, in6, in7, in8, in9, in10, in11, in12, in13, in14, in15, out0, out1, out2, out3, out4, out5, out6, out7)
 
#define TRANSPOSE4x4_SH_SH(in0, in1, in2, in3, out0, out1, out2, out3)
 
#define TRANSPOSE8x8_H(RTYPE, in0, in1, in2, in3, in4, in5, in6, in7, out0, out1, out2, out3, out4, out5, out6, out7)
 
#define TRANSPOSE8x8_UH_UH(...)   TRANSPOSE8x8_H(v8u16, __VA_ARGS__)
 
#define TRANSPOSE8x8_SH_SH(...)   TRANSPOSE8x8_H(v8i16, __VA_ARGS__)
 
#define TRANSPOSE4x4_SW_SW(in0, in1, in2, in3, out0, out1, out2, out3)
 
#define AVE_ST8x4_UB(in0, in1, in2, in3, in4, in5, in6, in7, pdst, stride)
 
#define AVE_ST16x4_UB(in0, in1, in2, in3, in4, in5, in6, in7, pdst, stride)
 
#define AVER_ST8x4_UB(in0, in1, in2, in3, in4, in5, in6, in7, pdst, stride)
 
#define AVER_ST16x4_UB(in0, in1, in2, in3, in4, in5, in6, in7, pdst, stride)
 
#define AVER_DST_ST8x4_UB(in0, in1, in2, in3, in4, in5, in6, in7, pdst, stride)
 
#define AVER_DST_ST16x4_UB(in0, in1, in2, in3, in4, in5, in6, in7, pdst, stride)
 
#define ADDBLK_ST4x4_UB(in0, in1, in2, in3, pdst, stride)
 
#define DPADD_SH3_SH(in0, in1, in2, coeff0, coeff1, coeff2)
 
#define PCKEV_XORI128_UB(in0, in1)
 
#define CONVERT_UB_AVG_ST8x4_UB(in0, in1, in2, in3, dst0, dst1, pdst, stride)
 
#define PCKEV_ST4x4_UB(in0, in1, in2, in3, pdst, stride)
 
#define PCKEV_ST_SB(in0, in1, pdst)
 
#define HORIZ_2TAP_FILT_UH(in0, in1, mask, coeff, shift)
 

Macro Definition Documentation

◆ ALIGNMENT

#define ALIGNMENT   16

Definition at line 32 of file generic_macros_msa.h.

◆ ALLOC_ALIGNED

#define ALLOC_ALIGNED (   align)    __attribute__ ((aligned((align) << 1)))

Definition at line 33 of file generic_macros_msa.h.

◆ LD_V

#define LD_V (   RTYPE,
  psrc 
)    *((RTYPE *)(psrc))

Definition at line 35 of file generic_macros_msa.h.

◆ LD_UB

#define LD_UB (   ...)    LD_V(v16u8, __VA_ARGS__)

Definition at line 36 of file generic_macros_msa.h.

◆ LD_SB

#define LD_SB (   ...)    LD_V(v16i8, __VA_ARGS__)

Definition at line 37 of file generic_macros_msa.h.

◆ LD_UH

#define LD_UH (   ...)    LD_V(v8u16, __VA_ARGS__)

Definition at line 38 of file generic_macros_msa.h.

◆ LD_SH

#define LD_SH (   ...)    LD_V(v8i16, __VA_ARGS__)

Definition at line 39 of file generic_macros_msa.h.

◆ LD_UW

#define LD_UW (   ...)    LD_V(v4u32, __VA_ARGS__)

Definition at line 40 of file generic_macros_msa.h.

◆ LD_SW

#define LD_SW (   ...)    LD_V(v4i32, __VA_ARGS__)

Definition at line 41 of file generic_macros_msa.h.

◆ ST_V

#define ST_V (   RTYPE,
  in,
  pdst 
)    *((RTYPE *)(pdst)) = (in)

Definition at line 43 of file generic_macros_msa.h.

◆ ST_UB

#define ST_UB (   ...)    ST_V(v16u8, __VA_ARGS__)

Definition at line 44 of file generic_macros_msa.h.

◆ ST_SB

#define ST_SB (   ...)    ST_V(v16i8, __VA_ARGS__)

Definition at line 45 of file generic_macros_msa.h.

◆ ST_UH

#define ST_UH (   ...)    ST_V(v8u16, __VA_ARGS__)

Definition at line 46 of file generic_macros_msa.h.

◆ ST_SH

#define ST_SH (   ...)    ST_V(v8i16, __VA_ARGS__)

Definition at line 47 of file generic_macros_msa.h.

◆ ST_UW

#define ST_UW (   ...)    ST_V(v4u32, __VA_ARGS__)

Definition at line 48 of file generic_macros_msa.h.

◆ ST_SW

#define ST_SW (   ...)    ST_V(v4i32, __VA_ARGS__)

Definition at line 49 of file generic_macros_msa.h.

◆ LH

#define LH (   psrc)
Value:
( { \
uint8_t *psrc_lh_m = (uint8_t *) (psrc); \
uint16_t val_lh_m; \
\
__asm__ volatile ( \
"ulh %[val_lh_m], %[psrc_lh_m] \n\t" \
\
: [val_lh_m] "=r" (val_lh_m) \
: [psrc_lh_m] "m" (*psrc_lh_m) \
); \
\
val_lh_m; \
} )

Definition at line 93 of file generic_macros_msa.h.

◆ LW

#define LW (   psrc)
Value:
( { \
uint8_t *psrc_lw_m = (uint8_t *) (psrc); \
uint32_t val_lw_m; \
\
__asm__ volatile ( \
"lwr %[val_lw_m], 0(%[psrc_lw_m]) \n\t" \
"lwl %[val_lw_m], 3(%[psrc_lw_m]) \n\t" \
\
: [val_lw_m] "=&r"(val_lw_m) \
: [psrc_lw_m] "r"(psrc_lw_m) \
); \
\
val_lw_m; \
} )

Definition at line 108 of file generic_macros_msa.h.

◆ LD

#define LD (   psrc)
Value:
( { \
uint8_t *psrc_ld_m = (uint8_t *) (psrc); \
uint32_t val0_ld_m, val1_ld_m; \
uint64_t val_ld_m = 0; \
\
val0_ld_m = LW(psrc_ld_m); \
val1_ld_m = LW(psrc_ld_m + 4); \
\
val_ld_m = (uint64_t) (val1_ld_m); \
val_ld_m = (uint64_t) ((val_ld_m << 32) & 0xFFFFFFFF00000000); \
val_ld_m = (uint64_t) (val_ld_m | (uint64_t) val0_ld_m); \
\
val_ld_m; \
} )

Definition at line 141 of file generic_macros_msa.h.

◆ SH

#define SH (   val,
  pdst 
)
Value:
{ \
uint8_t *pdst_sh_m = (uint8_t *) (pdst); \
uint16_t val_sh_m = (val); \
\
__asm__ volatile ( \
"ush %[val_sh_m], %[pdst_sh_m] \n\t" \
\
: [pdst_sh_m] "=m" (*pdst_sh_m) \
: [val_sh_m] "r" (val_sh_m) \
); \
}

Definition at line 158 of file generic_macros_msa.h.

◆ SW

#define SW (   val,
  pdst 
)
Value:
{ \
uint8_t *pdst_sw_m = (uint8_t *) (pdst); \
uint32_t val_sw_m = (val); \
\
__asm__ volatile ( \
"usw %[val_sw_m], %[pdst_sw_m] \n\t" \
\
: [pdst_sw_m] "=m" (*pdst_sw_m) \
: [val_sw_m] "r" (val_sw_m) \
); \
}

Definition at line 171 of file generic_macros_msa.h.

◆ SD

#define SD (   val,
  pdst 
)
Value:
{ \
uint8_t *pdst_sd_m = (uint8_t *) (pdst); \
uint32_t val0_sd_m, val1_sd_m; \
\
val0_sd_m = (uint32_t) ((val) & 0x00000000FFFFFFFF); \
val1_sd_m = (uint32_t) (((val) >> 32) & 0x00000000FFFFFFFF); \
SW(val0_sd_m, pdst_sd_m); \
SW(val1_sd_m, pdst_sd_m + 4); \
}

Definition at line 184 of file generic_macros_msa.h.

◆ LW4

#define LW4 (   psrc,
  stride,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
out0 = LW((psrc)); \
out1 = LW((psrc) + stride); \
out2 = LW((psrc) + 2 * stride); \
out3 = LW((psrc) + 3 * stride); \
}

Definition at line 206 of file generic_macros_msa.h.

◆ LW2

#define LW2 (   psrc,
  stride,
  out0,
  out1 
)
Value:
{ \
out0 = LW((psrc)); \
out1 = LW((psrc) + stride); \
}

Definition at line 214 of file generic_macros_msa.h.

◆ LD2

#define LD2 (   psrc,
  stride,
  out0,
  out1 
)
Value:
{ \
out0 = LD((psrc)); \
out1 = LD((psrc) + stride); \
}

Definition at line 227 of file generic_macros_msa.h.

◆ LD4

#define LD4 (   psrc,
  stride,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
LD2((psrc), stride, out0, out1); \
LD2((psrc) + 2 * stride, stride, out2, out3); \
}

Definition at line 232 of file generic_macros_msa.h.

◆ SW4

#define SW4 (   in0,
  in1,
  in2,
  in3,
  pdst,
  stride 
)
Value:
{ \
SW(in0, (pdst)) \
SW(in1, (pdst) + stride); \
SW(in2, (pdst) + 2 * stride); \
SW(in3, (pdst) + 3 * stride); \
}

Definition at line 245 of file generic_macros_msa.h.

◆ SD4

#define SD4 (   in0,
  in1,
  in2,
  in3,
  pdst,
  stride 
)
Value:
{ \
SD(in0, (pdst)) \
SD(in1, (pdst) + stride); \
SD(in2, (pdst) + 2 * stride); \
SD(in3, (pdst) + 3 * stride); \
}

Definition at line 260 of file generic_macros_msa.h.

◆ LD_V2

#define LD_V2 (   RTYPE,
  psrc,
  stride,
  out0,
  out1 
)
Value:
{ \
out0 = LD_V(RTYPE, (psrc)); \
out1 = LD_V(RTYPE, (psrc) + stride); \
}

Definition at line 276 of file generic_macros_msa.h.

◆ LD_UB2

#define LD_UB2 (   ...)    LD_V2(v16u8, __VA_ARGS__)

Definition at line 281 of file generic_macros_msa.h.

◆ LD_SB2

#define LD_SB2 (   ...)    LD_V2(v16i8, __VA_ARGS__)

Definition at line 282 of file generic_macros_msa.h.

◆ LD_UH2

#define LD_UH2 (   ...)    LD_V2(v8u16, __VA_ARGS__)

Definition at line 283 of file generic_macros_msa.h.

◆ LD_SH2

#define LD_SH2 (   ...)    LD_V2(v8i16, __VA_ARGS__)

Definition at line 284 of file generic_macros_msa.h.

◆ LD_SW2

#define LD_SW2 (   ...)    LD_V2(v4i32, __VA_ARGS__)

Definition at line 285 of file generic_macros_msa.h.

◆ LD_V3

#define LD_V3 (   RTYPE,
  psrc,
  stride,
  out0,
  out1,
  out2 
)
Value:
{ \
LD_V2(RTYPE, (psrc), stride, out0, out1); \
out2 = LD_V(RTYPE, (psrc) + 2 * stride); \
}

Definition at line 287 of file generic_macros_msa.h.

◆ LD_UB3

#define LD_UB3 (   ...)    LD_V3(v16u8, __VA_ARGS__)

Definition at line 292 of file generic_macros_msa.h.

◆ LD_SB3

#define LD_SB3 (   ...)    LD_V3(v16i8, __VA_ARGS__)

Definition at line 293 of file generic_macros_msa.h.

◆ LD_V4

#define LD_V4 (   RTYPE,
  psrc,
  stride,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
LD_V2(RTYPE, (psrc), stride, out0, out1); \
LD_V2(RTYPE, (psrc) + 2 * stride , stride, out2, out3); \
}

Definition at line 295 of file generic_macros_msa.h.

◆ LD_UB4

#define LD_UB4 (   ...)    LD_V4(v16u8, __VA_ARGS__)

Definition at line 300 of file generic_macros_msa.h.

◆ LD_SB4

#define LD_SB4 (   ...)    LD_V4(v16i8, __VA_ARGS__)

Definition at line 301 of file generic_macros_msa.h.

◆ LD_UH4

#define LD_UH4 (   ...)    LD_V4(v8u16, __VA_ARGS__)

Definition at line 302 of file generic_macros_msa.h.

◆ LD_SH4

#define LD_SH4 (   ...)    LD_V4(v8i16, __VA_ARGS__)

Definition at line 303 of file generic_macros_msa.h.

◆ LD_SW4

#define LD_SW4 (   ...)    LD_V4(v4i32, __VA_ARGS__)

Definition at line 304 of file generic_macros_msa.h.

◆ LD_V5

#define LD_V5 (   RTYPE,
  psrc,
  stride,
  out0,
  out1,
  out2,
  out3,
  out4 
)
Value:
{ \
LD_V4(RTYPE, (psrc), stride, out0, out1, out2, out3); \
out4 = LD_V(RTYPE, (psrc) + 4 * stride); \
}

Definition at line 306 of file generic_macros_msa.h.

◆ LD_UB5

#define LD_UB5 (   ...)    LD_V5(v16u8, __VA_ARGS__)

Definition at line 311 of file generic_macros_msa.h.

◆ LD_SB5

#define LD_SB5 (   ...)    LD_V5(v16i8, __VA_ARGS__)

Definition at line 312 of file generic_macros_msa.h.

◆ LD_V6

#define LD_V6 (   RTYPE,
  psrc,
  stride,
  out0,
  out1,
  out2,
  out3,
  out4,
  out5 
)
Value:
{ \
LD_V4(RTYPE, (psrc), stride, out0, out1, out2, out3); \
LD_V2(RTYPE, (psrc) + 4 * stride, stride, out4, out5); \
}

Definition at line 314 of file generic_macros_msa.h.

◆ LD_UB6

#define LD_UB6 (   ...)    LD_V6(v16u8, __VA_ARGS__)

Definition at line 319 of file generic_macros_msa.h.

◆ LD_SB6

#define LD_SB6 (   ...)    LD_V6(v16i8, __VA_ARGS__)

Definition at line 320 of file generic_macros_msa.h.

◆ LD_UH6

#define LD_UH6 (   ...)    LD_V6(v8u16, __VA_ARGS__)

Definition at line 321 of file generic_macros_msa.h.

◆ LD_SH6

#define LD_SH6 (   ...)    LD_V6(v8i16, __VA_ARGS__)

Definition at line 322 of file generic_macros_msa.h.

◆ LD_V7

#define LD_V7 (   RTYPE,
  psrc,
  stride,
  out0,
  out1,
  out2,
  out3,
  out4,
  out5,
  out6 
)
Value:
{ \
LD_V5(RTYPE, (psrc), stride, out0, out1, out2, out3, out4); \
LD_V2(RTYPE, (psrc) + 5 * stride, stride, out5, out6); \
}

Definition at line 324 of file generic_macros_msa.h.

◆ LD_UB7

#define LD_UB7 (   ...)    LD_V7(v16u8, __VA_ARGS__)

Definition at line 330 of file generic_macros_msa.h.

◆ LD_SB7

#define LD_SB7 (   ...)    LD_V7(v16i8, __VA_ARGS__)

Definition at line 331 of file generic_macros_msa.h.

◆ LD_V8

#define LD_V8 (   RTYPE,
  psrc,
  stride,
  out0,
  out1,
  out2,
  out3,
  out4,
  out5,
  out6,
  out7 
)
Value:
{ \
LD_V4(RTYPE, (psrc), stride, out0, out1, out2, out3); \
LD_V4(RTYPE, (psrc) + 4 * stride, stride, out4, out5, out6, out7); \
}

Definition at line 333 of file generic_macros_msa.h.

◆ LD_UB8

#define LD_UB8 (   ...)    LD_V8(v16u8, __VA_ARGS__)

Definition at line 339 of file generic_macros_msa.h.

◆ LD_SB8

#define LD_SB8 (   ...)    LD_V8(v16i8, __VA_ARGS__)

Definition at line 340 of file generic_macros_msa.h.

◆ LD_UH8

#define LD_UH8 (   ...)    LD_V8(v8u16, __VA_ARGS__)

Definition at line 341 of file generic_macros_msa.h.

◆ LD_SH8

#define LD_SH8 (   ...)    LD_V8(v8i16, __VA_ARGS__)

Definition at line 342 of file generic_macros_msa.h.

◆ LD_SW8

#define LD_SW8 (   ...)    LD_V8(v4i32, __VA_ARGS__)

Definition at line 343 of file generic_macros_msa.h.

◆ LD_V16

#define LD_V16 (   RTYPE,
  psrc,
  stride,
  out0,
  out1,
  out2,
  out3,
  out4,
  out5,
  out6,
  out7,
  out8,
  out9,
  out10,
  out11,
  out12,
  out13,
  out14,
  out15 
)
Value:
{ \
LD_V8(RTYPE, (psrc), stride, \
out0, out1, out2, out3, out4, out5, out6, out7); \
LD_V8(RTYPE, (psrc) + 8 * stride, stride, \
out8, out9, out10, out11, out12, out13, out14, out15); \
}

Definition at line 345 of file generic_macros_msa.h.

◆ LD_SH16

#define LD_SH16 (   ...)    LD_V16(v8i16, __VA_ARGS__)

Definition at line 354 of file generic_macros_msa.h.

◆ ST_V2

#define ST_V2 (   RTYPE,
  in0,
  in1,
  pdst,
  stride 
)
Value:
{ \
ST_V(RTYPE, in0, (pdst)); \
ST_V(RTYPE, in1, (pdst) + stride); \
}

Definition at line 362 of file generic_macros_msa.h.

◆ ST_UB2

#define ST_UB2 (   ...)    ST_V2(v16u8, __VA_ARGS__)

Definition at line 367 of file generic_macros_msa.h.

◆ ST_SB2

#define ST_SB2 (   ...)    ST_V2(v16i8, __VA_ARGS__)

Definition at line 368 of file generic_macros_msa.h.

◆ ST_UH2

#define ST_UH2 (   ...)    ST_V2(v8u16, __VA_ARGS__)

Definition at line 369 of file generic_macros_msa.h.

◆ ST_SH2

#define ST_SH2 (   ...)    ST_V2(v8i16, __VA_ARGS__)

Definition at line 370 of file generic_macros_msa.h.

◆ ST_SW2

#define ST_SW2 (   ...)    ST_V2(v4i32, __VA_ARGS__)

Definition at line 371 of file generic_macros_msa.h.

◆ ST_V4

#define ST_V4 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  pdst,
  stride 
)
Value:
{ \
ST_V2(RTYPE, in0, in1, (pdst), stride); \
ST_V2(RTYPE, in2, in3, (pdst) + 2 * stride, stride); \
}

Definition at line 373 of file generic_macros_msa.h.

◆ ST_UB4

#define ST_UB4 (   ...)    ST_V4(v16u8, __VA_ARGS__)

Definition at line 378 of file generic_macros_msa.h.

◆ ST_SB4

#define ST_SB4 (   ...)    ST_V4(v16i8, __VA_ARGS__)

Definition at line 379 of file generic_macros_msa.h.

◆ ST_SH4

#define ST_SH4 (   ...)    ST_V4(v8i16, __VA_ARGS__)

Definition at line 380 of file generic_macros_msa.h.

◆ ST_SW4

#define ST_SW4 (   ...)    ST_V4(v4i32, __VA_ARGS__)

Definition at line 381 of file generic_macros_msa.h.

◆ ST_V6

#define ST_V6 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  pdst,
  stride 
)
Value:
{ \
ST_V4(RTYPE, in0, in1, in2, in3, (pdst), stride); \
ST_V2(RTYPE, in4, in5, (pdst) + 4 * stride, stride); \
}

Definition at line 383 of file generic_macros_msa.h.

◆ ST_SH6

#define ST_SH6 (   ...)    ST_V6(v8i16, __VA_ARGS__)

Definition at line 388 of file generic_macros_msa.h.

◆ ST_V8

#define ST_V8 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  pdst,
  stride 
)
Value:
{ \
ST_V4(RTYPE, in0, in1, in2, in3, (pdst), stride); \
ST_V4(RTYPE, in4, in5, in6, in7, (pdst) + 4 * stride, stride); \
}

Definition at line 390 of file generic_macros_msa.h.

◆ ST_UB8

#define ST_UB8 (   ...)    ST_V8(v16u8, __VA_ARGS__)

Definition at line 395 of file generic_macros_msa.h.

◆ ST_SH8

#define ST_SH8 (   ...)    ST_V8(v8i16, __VA_ARGS__)

Definition at line 396 of file generic_macros_msa.h.

◆ ST_SW8

#define ST_SW8 (   ...)    ST_V8(v4i32, __VA_ARGS__)

Definition at line 397 of file generic_macros_msa.h.

◆ ST_H1

#define ST_H1 (   in,
  idx,
  pdst 
)
Value:
{ \
uint16_t out0_m; \
out0_m = __msa_copy_u_h((v8i16) in, idx); \
SH(out0_m, (pdst)); \
}

Definition at line 407 of file generic_macros_msa.h.

◆ ST_H2

#define ST_H2 (   in,
  idx0,
  idx1,
  pdst,
  stride 
)
Value:
{ \
uint16_t out0_m, out1_m; \
out0_m = __msa_copy_u_h((v8i16) in, idx0); \
out1_m = __msa_copy_u_h((v8i16) in, idx1); \
SH(out0_m, (pdst)); \
SH(out1_m, (pdst) + stride); \
}

Definition at line 413 of file generic_macros_msa.h.

◆ ST_H4

#define ST_H4 (   in,
  idx0,
  idx1,
  idx2,
  idx3,
  pdst,
  stride 
)
Value:
{ \
uint16_t out0_m, out1_m, out2_m, out3_m; \
out0_m = __msa_copy_u_h((v8i16) in, idx0); \
out1_m = __msa_copy_u_h((v8i16) in, idx1); \
out2_m = __msa_copy_u_h((v8i16) in, idx2); \
out3_m = __msa_copy_u_h((v8i16) in, idx3); \
SH(out0_m, (pdst)); \
SH(out1_m, (pdst) + stride); \
SH(out2_m, (pdst) + 2 * stride); \
SH(out3_m, (pdst) + 3 * stride); \
}

Definition at line 421 of file generic_macros_msa.h.

◆ ST_H8

#define ST_H8 (   in,
  idx0,
  idx1,
  idx2,
  idx3,
  idx4,
  idx5,
  idx6,
  idx7,
  pdst,
  stride 
)
Value:
{ \
ST_H4(in, idx0, idx1, idx2, idx3, pdst, stride) \
ST_H4(in, idx4, idx5, idx6, idx7, (pdst) + 4*stride, stride) \
}

Definition at line 433 of file generic_macros_msa.h.

◆ ST_W1

#define ST_W1 (   in,
  idx,
  pdst 
)
Value:
{ \
uint32_t out0_m; \
out0_m = __msa_copy_u_w((v4i32) in, idx); \
SW(out0_m, (pdst)); \
}

Definition at line 448 of file generic_macros_msa.h.

◆ ST_W2

#define ST_W2 (   in,
  idx0,
  idx1,
  pdst,
  stride 
)
Value:
{ \
uint32_t out0_m, out1_m; \
out0_m = __msa_copy_u_w((v4i32) in, idx0); \
out1_m = __msa_copy_u_w((v4i32) in, idx1); \
SW(out0_m, (pdst)); \
SW(out1_m, (pdst) + stride); \
}

Definition at line 454 of file generic_macros_msa.h.

◆ ST_W4

#define ST_W4 (   in,
  idx0,
  idx1,
  idx2,
  idx3,
  pdst,
  stride 
)
Value:
{ \
uint32_t out0_m, out1_m, out2_m, out3_m; \
out0_m = __msa_copy_u_w((v4i32) in, idx0); \
out1_m = __msa_copy_u_w((v4i32) in, idx1); \
out2_m = __msa_copy_u_w((v4i32) in, idx2); \
out3_m = __msa_copy_u_w((v4i32) in, idx3); \
SW(out0_m, (pdst)); \
SW(out1_m, (pdst) + stride); \
SW(out2_m, (pdst) + 2*stride); \
SW(out3_m, (pdst) + 3*stride); \
}

Definition at line 462 of file generic_macros_msa.h.

◆ ST_W8

#define ST_W8 (   in0,
  in1,
  idx0,
  idx1,
  idx2,
  idx3,
  idx4,
  idx5,
  idx6,
  idx7,
  pdst,
  stride 
)
Value:
{ \
ST_W4(in0, idx0, idx1, idx2, idx3, pdst, stride) \
ST_W4(in1, idx4, idx5, idx6, idx7, pdst + 4*stride, stride) \
}

Definition at line 474 of file generic_macros_msa.h.

◆ ST_D1

#define ST_D1 (   in,
  idx,
  pdst 
)
Value:
{ \
uint64_t out0_m; \
out0_m = __msa_copy_u_d((v2i64) in, idx); \
SD(out0_m, (pdst)); \
}

Definition at line 489 of file generic_macros_msa.h.

◆ ST_D2

#define ST_D2 (   in,
  idx0,
  idx1,
  pdst,
  stride 
)
Value:
{ \
uint64_t out0_m, out1_m; \
out0_m = __msa_copy_u_d((v2i64) in, idx0); \
out1_m = __msa_copy_u_d((v2i64) in, idx1); \
SD(out0_m, (pdst)); \
SD(out1_m, (pdst) + stride); \
}

Definition at line 495 of file generic_macros_msa.h.

◆ ST_D4

#define ST_D4 (   in0,
  in1,
  idx0,
  idx1,
  idx2,
  idx3,
  pdst,
  stride 
)
Value:
{ \
uint64_t out0_m, out1_m, out2_m, out3_m; \
out0_m = __msa_copy_u_d((v2i64) in0, idx0); \
out1_m = __msa_copy_u_d((v2i64) in0, idx1); \
out2_m = __msa_copy_u_d((v2i64) in1, idx2); \
out3_m = __msa_copy_u_d((v2i64) in1, idx3); \
SD(out0_m, (pdst)); \
SD(out1_m, (pdst) + stride); \
SD(out2_m, (pdst) + 2 * stride); \
SD(out3_m, (pdst) + 3 * stride); \
}

Definition at line 503 of file generic_macros_msa.h.

◆ ST_D8

#define ST_D8 (   in0,
  in1,
  in2,
  in3,
  idx0,
  idx1,
  idx2,
  idx3,
  idx4,
  idx5,
  idx6,
  idx7,
  pdst,
  stride 
)
Value:
{ \
ST_D4(in0, in1, idx0, idx1, idx2, idx3, pdst, stride) \
ST_D4(in2, in3, idx4, idx5, idx6, idx7, pdst + 4 * stride, stride) \
}

Definition at line 515 of file generic_macros_msa.h.

◆ ST12x8_UB

#define ST12x8_UB (   in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  pdst,
  stride 
)

Definition at line 531 of file generic_macros_msa.h.

◆ AVER_UB2

#define AVER_UB2 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_aver_u_b((v16u8) in0, (v16u8) in1); \
out1 = (RTYPE) __msa_aver_u_b((v16u8) in2, (v16u8) in3); \
}

Definition at line 594 of file generic_macros_msa.h.

◆ AVER_UB2_UB

#define AVER_UB2_UB (   ...)    AVER_UB2(v16u8, __VA_ARGS__)

Definition at line 599 of file generic_macros_msa.h.

◆ AVER_UB4

#define AVER_UB4 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
AVER_UB2(RTYPE, in0, in1, in2, in3, out0, out1) \
AVER_UB2(RTYPE, in4, in5, in6, in7, out2, out3) \
}

Definition at line 601 of file generic_macros_msa.h.

◆ AVER_UB4_UB

#define AVER_UB4_UB (   ...)    AVER_UB4(v16u8, __VA_ARGS__)

Definition at line 607 of file generic_macros_msa.h.

◆ SLDI_B

#define SLDI_B (   RTYPE,
  d,
  s,
  slide_val,
  out 
)
Value:
{ \
out = (RTYPE) __msa_sldi_b((v16i8) d, (v16i8) s, slide_val); \
}

Definition at line 616 of file generic_macros_msa.h.

◆ SLDI_B2

#define SLDI_B2 (   RTYPE,
  d0,
  s0,
  d1,
  s1,
  slide_val,
  out0,
  out1 
)
Value:
{ \
SLDI_B(RTYPE, d0, s0, slide_val, out0) \
SLDI_B(RTYPE, d1, s1, slide_val, out1) \
}

Definition at line 621 of file generic_macros_msa.h.

◆ SLDI_B2_UB

#define SLDI_B2_UB (   ...)    SLDI_B2(v16u8, __VA_ARGS__)

Definition at line 626 of file generic_macros_msa.h.

◆ SLDI_B2_SB

#define SLDI_B2_SB (   ...)    SLDI_B2(v16i8, __VA_ARGS__)

Definition at line 627 of file generic_macros_msa.h.

◆ SLDI_B2_SH

#define SLDI_B2_SH (   ...)    SLDI_B2(v8i16, __VA_ARGS__)

Definition at line 628 of file generic_macros_msa.h.

◆ SLDI_B2_SW

#define SLDI_B2_SW (   ...)    SLDI_B2(v4i32, __VA_ARGS__)

Definition at line 629 of file generic_macros_msa.h.

◆ SLDI_B3

#define SLDI_B3 (   RTYPE,
  d0,
  s0,
  d1,
  s1,
  d2,
  s2,
  slide_val,
  out0,
  out1,
  out2 
)
Value:
{ \
SLDI_B2(RTYPE, d0, s0, d1, s1, slide_val, out0, out1) \
SLDI_B(RTYPE, d2, s2, slide_val, out2) \
}

Definition at line 631 of file generic_macros_msa.h.

◆ SLDI_B3_UB

#define SLDI_B3_UB (   ...)    SLDI_B3(v16u8, __VA_ARGS__)

Definition at line 637 of file generic_macros_msa.h.

◆ SLDI_B3_SB

#define SLDI_B3_SB (   ...)    SLDI_B3(v16i8, __VA_ARGS__)

Definition at line 638 of file generic_macros_msa.h.

◆ SLDI_B3_UH

#define SLDI_B3_UH (   ...)    SLDI_B3(v8u16, __VA_ARGS__)

Definition at line 639 of file generic_macros_msa.h.

◆ SLDI_B4

#define SLDI_B4 (   RTYPE,
  d0,
  s0,
  d1,
  s1,
  d2,
  s2,
  d3,
  s3,
  slide_val,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
SLDI_B2(RTYPE, d0, s0, d1, s1, slide_val, out0, out1) \
SLDI_B2(RTYPE, d2, s2, d3, s3, slide_val, out2, out3) \
}

Definition at line 641 of file generic_macros_msa.h.

◆ SLDI_B4_UB

#define SLDI_B4_UB (   ...)    SLDI_B4(v16u8, __VA_ARGS__)

Definition at line 647 of file generic_macros_msa.h.

◆ SLDI_B4_SB

#define SLDI_B4_SB (   ...)    SLDI_B4(v16i8, __VA_ARGS__)

Definition at line 648 of file generic_macros_msa.h.

◆ SLDI_B4_SH

#define SLDI_B4_SH (   ...)    SLDI_B4(v8i16, __VA_ARGS__)

Definition at line 649 of file generic_macros_msa.h.

◆ VSHF_B2

#define VSHF_B2 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  mask0,
  mask1,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_vshf_b((v16i8) mask0, (v16i8) in1, (v16i8) in0); \
out1 = (RTYPE) __msa_vshf_b((v16i8) mask1, (v16i8) in3, (v16i8) in2); \
}

Definition at line 660 of file generic_macros_msa.h.

◆ VSHF_B2_UB

#define VSHF_B2_UB (   ...)    VSHF_B2(v16u8, __VA_ARGS__)

Definition at line 665 of file generic_macros_msa.h.

◆ VSHF_B2_SB

#define VSHF_B2_SB (   ...)    VSHF_B2(v16i8, __VA_ARGS__)

Definition at line 666 of file generic_macros_msa.h.

◆ VSHF_B2_UH

#define VSHF_B2_UH (   ...)    VSHF_B2(v8u16, __VA_ARGS__)

Definition at line 667 of file generic_macros_msa.h.

◆ VSHF_B2_SH

#define VSHF_B2_SH (   ...)    VSHF_B2(v8i16, __VA_ARGS__)

Definition at line 668 of file generic_macros_msa.h.

◆ VSHF_B3

#define VSHF_B3 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  mask0,
  mask1,
  mask2,
  out0,
  out1,
  out2 
)
Value:
{ \
VSHF_B2(RTYPE, in0, in1, in2, in3, mask0, mask1, out0, out1); \
out2 = (RTYPE) __msa_vshf_b((v16i8) mask2, (v16i8) in5, (v16i8) in4); \
}

Definition at line 670 of file generic_macros_msa.h.

◆ VSHF_B3_SB

#define VSHF_B3_SB (   ...)    VSHF_B3(v16i8, __VA_ARGS__)

Definition at line 676 of file generic_macros_msa.h.

◆ VSHF_B4

#define VSHF_B4 (   RTYPE,
  in0,
  in1,
  mask0,
  mask1,
  mask2,
  mask3,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
VSHF_B2(RTYPE, in0, in1, in0, in1, mask0, mask1, out0, out1); \
VSHF_B2(RTYPE, in0, in1, in0, in1, mask2, mask3, out2, out3); \
}

Definition at line 678 of file generic_macros_msa.h.

◆ VSHF_B4_SB

#define VSHF_B4_SB (   ...)    VSHF_B4(v16i8, __VA_ARGS__)

Definition at line 684 of file generic_macros_msa.h.

◆ VSHF_B4_SH

#define VSHF_B4_SH (   ...)    VSHF_B4(v8i16, __VA_ARGS__)

Definition at line 685 of file generic_macros_msa.h.

◆ VSHF_H2

#define VSHF_H2 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  mask0,
  mask1,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_vshf_h((v8i16) mask0, (v8i16) in1, (v8i16) in0); \
out1 = (RTYPE) __msa_vshf_h((v8i16) mask1, (v8i16) in3, (v8i16) in2); \
}

Definition at line 696 of file generic_macros_msa.h.

◆ VSHF_H2_SH

#define VSHF_H2_SH (   ...)    VSHF_H2(v8i16, __VA_ARGS__)

Definition at line 701 of file generic_macros_msa.h.

◆ VSHF_H3

#define VSHF_H3 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  mask0,
  mask1,
  mask2,
  out0,
  out1,
  out2 
)
Value:
{ \
VSHF_H2(RTYPE, in0, in1, in2, in3, mask0, mask1, out0, out1); \
out2 = (RTYPE) __msa_vshf_h((v8i16) mask2, (v8i16) in5, (v8i16) in4); \
}

Definition at line 703 of file generic_macros_msa.h.

◆ VSHF_H3_SH

#define VSHF_H3_SH (   ...)    VSHF_H3(v8i16, __VA_ARGS__)

Definition at line 709 of file generic_macros_msa.h.

◆ VSHF_W2

#define VSHF_W2 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  mask0,
  mask1,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_vshf_w((v4i32) mask0, (v4i32) in1, (v4i32) in0); \
out1 = (RTYPE) __msa_vshf_w((v4i32) mask1, (v4i32) in3, (v4i32) in2); \
}

Definition at line 720 of file generic_macros_msa.h.

◆ VSHF_W2_SB

#define VSHF_W2_SB (   ...)    VSHF_W2(v16i8, __VA_ARGS__)

Definition at line 725 of file generic_macros_msa.h.

◆ DOTP_UB2

#define DOTP_UB2 (   RTYPE,
  mult0,
  mult1,
  cnst0,
  cnst1,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_dotp_u_h((v16u8) mult0, (v16u8) cnst0); \
out1 = (RTYPE) __msa_dotp_u_h((v16u8) mult1, (v16u8) cnst1); \
}

Definition at line 739 of file generic_macros_msa.h.

◆ DOTP_UB2_UH

#define DOTP_UB2_UH (   ...)    DOTP_UB2(v8u16, __VA_ARGS__)

Definition at line 744 of file generic_macros_msa.h.

◆ DOTP_UB4

#define DOTP_UB4 (   RTYPE,
  mult0,
  mult1,
  mult2,
  mult3,
  cnst0,
  cnst1,
  cnst2,
  cnst3,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
DOTP_UB2(RTYPE, mult0, mult1, cnst0, cnst1, out0, out1); \
DOTP_UB2(RTYPE, mult2, mult3, cnst2, cnst3, out2, out3); \
}

Definition at line 746 of file generic_macros_msa.h.

◆ DOTP_UB4_UH

#define DOTP_UB4_UH (   ...)    DOTP_UB4(v8u16, __VA_ARGS__)

Definition at line 753 of file generic_macros_msa.h.

◆ DOTP_SB2

#define DOTP_SB2 (   RTYPE,
  mult0,
  mult1,
  cnst0,
  cnst1,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_dotp_s_h((v16i8) mult0, (v16i8) cnst0); \
out1 = (RTYPE) __msa_dotp_s_h((v16i8) mult1, (v16i8) cnst1); \
}

Definition at line 767 of file generic_macros_msa.h.

◆ DOTP_SB2_SH

#define DOTP_SB2_SH (   ...)    DOTP_SB2(v8i16, __VA_ARGS__)

Definition at line 772 of file generic_macros_msa.h.

◆ DOTP_SB3

#define DOTP_SB3 (   RTYPE,
  mult0,
  mult1,
  mult2,
  cnst0,
  cnst1,
  cnst2,
  out0,
  out1,
  out2 
)
Value:
{ \
DOTP_SB2(RTYPE, mult0, mult1, cnst0, cnst1, out0, out1); \
out2 = (RTYPE) __msa_dotp_s_h((v16i8) mult2, (v16i8) cnst2); \
}

Definition at line 774 of file generic_macros_msa.h.

◆ DOTP_SB3_SH

#define DOTP_SB3_SH (   ...)    DOTP_SB3(v8i16, __VA_ARGS__)

Definition at line 780 of file generic_macros_msa.h.

◆ DOTP_SB4

#define DOTP_SB4 (   RTYPE,
  mult0,
  mult1,
  mult2,
  mult3,
  cnst0,
  cnst1,
  cnst2,
  cnst3,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
DOTP_SB2(RTYPE, mult0, mult1, cnst0, cnst1, out0, out1); \
DOTP_SB2(RTYPE, mult2, mult3, cnst2, cnst3, out2, out3); \
}

Definition at line 782 of file generic_macros_msa.h.

◆ DOTP_SB4_SH

#define DOTP_SB4_SH (   ...)    DOTP_SB4(v8i16, __VA_ARGS__)

Definition at line 788 of file generic_macros_msa.h.

◆ DOTP_SH2

#define DOTP_SH2 (   RTYPE,
  mult0,
  mult1,
  cnst0,
  cnst1,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_dotp_s_w((v8i16) mult0, (v8i16) cnst0); \
out1 = (RTYPE) __msa_dotp_s_w((v8i16) mult1, (v8i16) cnst1); \
}

Definition at line 802 of file generic_macros_msa.h.

◆ DOTP_SH2_SW

#define DOTP_SH2_SW (   ...)    DOTP_SH2(v4i32, __VA_ARGS__)

Definition at line 807 of file generic_macros_msa.h.

◆ DOTP_SH4

#define DOTP_SH4 (   RTYPE,
  mult0,
  mult1,
  mult2,
  mult3,
  cnst0,
  cnst1,
  cnst2,
  cnst3,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
DOTP_SH2(RTYPE, mult0, mult1, cnst0, cnst1, out0, out1); \
DOTP_SH2(RTYPE, mult2, mult3, cnst2, cnst3, out2, out3); \
}

Definition at line 809 of file generic_macros_msa.h.

◆ DOTP_SH4_SW

#define DOTP_SH4_SW (   ...)    DOTP_SH4(v4i32, __VA_ARGS__)

Definition at line 816 of file generic_macros_msa.h.

◆ DPADD_SB2

#define DPADD_SB2 (   RTYPE,
  mult0,
  mult1,
  cnst0,
  cnst1,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_dpadd_s_h((v8i16) out0, \
(v16i8) mult0, (v16i8) cnst0); \
out1 = (RTYPE) __msa_dpadd_s_h((v8i16) out1, \
(v16i8) mult1, (v16i8) cnst1); \
}

Definition at line 830 of file generic_macros_msa.h.

◆ DPADD_SB2_SH

#define DPADD_SB2_SH (   ...)    DPADD_SB2(v8i16, __VA_ARGS__)

Definition at line 837 of file generic_macros_msa.h.

◆ DPADD_SB4

#define DPADD_SB4 (   RTYPE,
  mult0,
  mult1,
  mult2,
  mult3,
  cnst0,
  cnst1,
  cnst2,
  cnst3,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
DPADD_SB2(RTYPE, mult0, mult1, cnst0, cnst1, out0, out1); \
DPADD_SB2(RTYPE, mult2, mult3, cnst2, cnst3, out2, out3); \
}

Definition at line 839 of file generic_macros_msa.h.

◆ DPADD_SB4_SH

#define DPADD_SB4_SH (   ...)    DPADD_SB4(v8i16, __VA_ARGS__)

Definition at line 845 of file generic_macros_msa.h.

◆ DPADD_UB2

#define DPADD_UB2 (   RTYPE,
  mult0,
  mult1,
  cnst0,
  cnst1,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_dpadd_u_h((v8u16) out0, \
(v16u8) mult0, (v16u8) cnst0); \
out1 = (RTYPE) __msa_dpadd_u_h((v8u16) out1, \
(v16u8) mult1, (v16u8) cnst1); \
}

Definition at line 859 of file generic_macros_msa.h.

◆ DPADD_UB2_UH

#define DPADD_UB2_UH (   ...)    DPADD_UB2(v8u16, __VA_ARGS__)

Definition at line 866 of file generic_macros_msa.h.

◆ DPADD_SH2

#define DPADD_SH2 (   RTYPE,
  mult0,
  mult1,
  cnst0,
  cnst1,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_dpadd_s_w((v4i32) out0, \
(v8i16) mult0, (v8i16) cnst0); \
out1 = (RTYPE) __msa_dpadd_s_w((v4i32) out1, \
(v8i16) mult1, (v8i16) cnst1); \
}

Definition at line 880 of file generic_macros_msa.h.

◆ DPADD_SH2_SW

#define DPADD_SH2_SW (   ...)    DPADD_SH2(v4i32, __VA_ARGS__)

Definition at line 887 of file generic_macros_msa.h.

◆ DPADD_SH4

#define DPADD_SH4 (   RTYPE,
  mult0,
  mult1,
  mult2,
  mult3,
  cnst0,
  cnst1,
  cnst2,
  cnst3,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
DPADD_SH2(RTYPE, mult0, mult1, cnst0, cnst1, out0, out1); \
DPADD_SH2(RTYPE, mult2, mult3, cnst2, cnst3, out2, out3); \
}

Definition at line 889 of file generic_macros_msa.h.

◆ DPADD_SH4_SW

#define DPADD_SH4_SW (   ...)    DPADD_SH4(v4i32, __VA_ARGS__)

Definition at line 895 of file generic_macros_msa.h.

◆ MIN_UH2

#define MIN_UH2 (   RTYPE,
  in0,
  in1,
  min_vec 
)
Value:
{ \
in0 = (RTYPE) __msa_min_u_h((v8u16) in0, min_vec); \
in1 = (RTYPE) __msa_min_u_h((v8u16) in1, min_vec); \
}

Definition at line 905 of file generic_macros_msa.h.

◆ MIN_UH2_UH

#define MIN_UH2_UH (   ...)    MIN_UH2(v8u16, __VA_ARGS__)

Definition at line 910 of file generic_macros_msa.h.

◆ MIN_UH4

#define MIN_UH4 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  min_vec 
)
Value:
{ \
MIN_UH2(RTYPE, in0, in1, min_vec); \
MIN_UH2(RTYPE, in2, in3, min_vec); \
}

Definition at line 912 of file generic_macros_msa.h.

◆ MIN_UH4_UH

#define MIN_UH4_UH (   ...)    MIN_UH4(v8u16, __VA_ARGS__)

Definition at line 917 of file generic_macros_msa.h.

◆ CLIP_SH

#define CLIP_SH (   in,
  min,
  max 
)
Value:
{ \
in = __msa_max_s_h((v8i16) min, (v8i16) in); \
in = __msa_min_s_h((v8i16) max, (v8i16) in); \
}

Definition at line 927 of file generic_macros_msa.h.

◆ CLIP_SH_0_255

#define CLIP_SH_0_255 (   in)
Value:
{ \
in = __msa_maxi_s_h((v8i16) in, 0); \
in = (v8i16) __msa_sat_u_h((v8u16) in, 7); \
}

Definition at line 939 of file generic_macros_msa.h.

◆ CLIP_SH2_0_255

#define CLIP_SH2_0_255 (   in0,
  in1 
)
Value:
{ \
CLIP_SH_0_255(in0); \
CLIP_SH_0_255(in1); \
}

Definition at line 945 of file generic_macros_msa.h.

◆ CLIP_SH4_0_255

#define CLIP_SH4_0_255 (   in0,
  in1,
  in2,
  in3 
)
Value:
{ \
CLIP_SH2_0_255(in0, in1); \
CLIP_SH2_0_255(in2, in3); \
}

Definition at line 951 of file generic_macros_msa.h.

◆ CLIP_SH8_0_255

#define CLIP_SH8_0_255 (   in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7 
)
Value:
{ \
CLIP_SH4_0_255(in0, in1, in2, in3); \
CLIP_SH4_0_255(in4, in5, in6, in7); \
}

Definition at line 957 of file generic_macros_msa.h.

◆ CLIP_SW_0_255

#define CLIP_SW_0_255 (   in)
Value:
{ \
in = __msa_maxi_s_w((v4i32) in, 0); \
in = (v4i32) __msa_sat_u_w((v4u32) in, 7); \
}

Definition at line 970 of file generic_macros_msa.h.

◆ CLIP_SW2_0_255

#define CLIP_SW2_0_255 (   in0,
  in1 
)
Value:
{ \
CLIP_SW_0_255(in0); \
CLIP_SW_0_255(in1); \
}

Definition at line 976 of file generic_macros_msa.h.

◆ CLIP_SW4_0_255

#define CLIP_SW4_0_255 (   in0,
  in1,
  in2,
  in3 
)
Value:
{ \
CLIP_SW2_0_255(in0, in1); \
CLIP_SW2_0_255(in2, in3); \
}

Definition at line 982 of file generic_macros_msa.h.

◆ CLIP_SW8_0_255

#define CLIP_SW8_0_255 (   in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7 
)
Value:
{ \
CLIP_SW4_0_255(in0, in1, in2, in3); \
CLIP_SW4_0_255(in4, in5, in6, in7); \
}

Definition at line 988 of file generic_macros_msa.h.

◆ HADD_SW_S32

#define HADD_SW_S32 (   in)
Value:
( { \
v2i64 res0_m, res1_m; \
int32_t sum_m; \
\
res0_m = __msa_hadd_s_d((v4i32) in, (v4i32) in); \
res1_m = __msa_splati_d(res0_m, 1); \
res0_m += res1_m; \
sum_m = __msa_copy_s_w((v4i32) res0_m, 0); \
sum_m; \
} )

Definition at line 1002 of file generic_macros_msa.h.

◆ HADD_UH_U32

#define HADD_UH_U32 (   in)
Value:
( { \
v4u32 res_m; \
v2u64 res0_m, res1_m; \
uint32_t sum_m; \
\
res_m = __msa_hadd_u_w((v8u16) in, (v8u16) in); \
res0_m = __msa_hadd_u_d(res_m, res_m); \
res1_m = (v2u64) __msa_splati_d((v2i64) res0_m, 1); \
res0_m += res1_m; \
sum_m = __msa_copy_u_w((v4i32) res0_m, 0); \
sum_m; \
} )

Definition at line 1021 of file generic_macros_msa.h.

◆ HADD_SB2

#define HADD_SB2 (   RTYPE,
  in0,
  in1,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_hadd_s_h((v16i8) in0, (v16i8) in0); \
out1 = (RTYPE) __msa_hadd_s_h((v16i8) in1, (v16i8) in1); \
}

Definition at line 1043 of file generic_macros_msa.h.

◆ HADD_SB2_SH

#define HADD_SB2_SH (   ...)    HADD_SB2(v8i16, __VA_ARGS__)

Definition at line 1048 of file generic_macros_msa.h.

◆ HADD_SB4

#define HADD_SB4 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
HADD_SB2(RTYPE, in0, in1, out0, out1); \
HADD_SB2(RTYPE, in2, in3, out2, out3); \
}

Definition at line 1050 of file generic_macros_msa.h.

◆ HADD_SB4_UH

#define HADD_SB4_UH (   ...)    HADD_SB4(v8u16, __VA_ARGS__)

Definition at line 1055 of file generic_macros_msa.h.

◆ HADD_SB4_SH

#define HADD_SB4_SH (   ...)    HADD_SB4(v8i16, __VA_ARGS__)

Definition at line 1056 of file generic_macros_msa.h.

◆ HADD_UB2

#define HADD_UB2 (   RTYPE,
  in0,
  in1,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_hadd_u_h((v16u8) in0, (v16u8) in0); \
out1 = (RTYPE) __msa_hadd_u_h((v16u8) in1, (v16u8) in1); \
}

Definition at line 1066 of file generic_macros_msa.h.

◆ HADD_UB2_UH

#define HADD_UB2_UH (   ...)    HADD_UB2(v8u16, __VA_ARGS__)

Definition at line 1071 of file generic_macros_msa.h.

◆ HADD_UB3

#define HADD_UB3 (   RTYPE,
  in0,
  in1,
  in2,
  out0,
  out1,
  out2 
)
Value:
{ \
HADD_UB2(RTYPE, in0, in1, out0, out1); \
out2 = (RTYPE) __msa_hadd_u_h((v16u8) in2, (v16u8) in2); \
}

Definition at line 1073 of file generic_macros_msa.h.

◆ HADD_UB3_UH

#define HADD_UB3_UH (   ...)    HADD_UB3(v8u16, __VA_ARGS__)

Definition at line 1078 of file generic_macros_msa.h.

◆ HADD_UB4

#define HADD_UB4 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
HADD_UB2(RTYPE, in0, in1, out0, out1); \
HADD_UB2(RTYPE, in2, in3, out2, out3); \
}

Definition at line 1080 of file generic_macros_msa.h.

◆ HADD_UB4_UB

#define HADD_UB4_UB (   ...)    HADD_UB4(v16u8, __VA_ARGS__)

Definition at line 1085 of file generic_macros_msa.h.

◆ HADD_UB4_UH

#define HADD_UB4_UH (   ...)    HADD_UB4(v8u16, __VA_ARGS__)

Definition at line 1086 of file generic_macros_msa.h.

◆ HADD_UB4_SH

#define HADD_UB4_SH (   ...)    HADD_UB4(v8i16, __VA_ARGS__)

Definition at line 1087 of file generic_macros_msa.h.

◆ HSUB_UB2

#define HSUB_UB2 (   RTYPE,
  in0,
  in1,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_hsub_u_h((v16u8) in0, (v16u8) in0); \
out1 = (RTYPE) __msa_hsub_u_h((v16u8) in1, (v16u8) in1); \
}

Definition at line 1097 of file generic_macros_msa.h.

◆ HSUB_UB2_UH

#define HSUB_UB2_UH (   ...)    HSUB_UB2(v8u16, __VA_ARGS__)

Definition at line 1102 of file generic_macros_msa.h.

◆ HSUB_UB2_SH

#define HSUB_UB2_SH (   ...)    HSUB_UB2(v8i16, __VA_ARGS__)

Definition at line 1103 of file generic_macros_msa.h.

◆ HSUB_UB4

#define HSUB_UB4 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
HSUB_UB2(RTYPE, in0, in1, out0, out1); \
HSUB_UB2(RTYPE, in2, in3, out2, out3); \
}

Definition at line 1105 of file generic_macros_msa.h.

◆ HSUB_UB4_UH

#define HSUB_UB4_UH (   ...)    HSUB_UB4(v8u16, __VA_ARGS__)

Definition at line 1110 of file generic_macros_msa.h.

◆ HSUB_UB4_SH

#define HSUB_UB4_SH (   ...)    HSUB_UB4(v8i16, __VA_ARGS__)

Definition at line 1111 of file generic_macros_msa.h.

◆ SAD_UB2_UH

#define SAD_UB2_UH (   in0,
  in1,
  ref0,
  ref1 
)
Value:
( { \
v16u8 diff0_m, diff1_m; \
v8u16 sad_m = { 0 }; \
\
diff0_m = __msa_asub_u_b((v16u8) in0, (v16u8) ref0); \
diff1_m = __msa_asub_u_b((v16u8) in1, (v16u8) ref1); \
\
sad_m += __msa_hadd_u_h((v16u8) diff0_m, (v16u8) diff0_m); \
sad_m += __msa_hadd_u_h((v16u8) diff1_m, (v16u8) diff1_m); \
\
sad_m; \
} )

Definition at line 1131 of file generic_macros_msa.h.

◆ INSERT_W2

#define INSERT_W2 (   RTYPE,
  in0,
  in1,
  out 
)
Value:
{ \
out = (RTYPE) __msa_insert_w((v4i32) out, 0, in0); \
out = (RTYPE) __msa_insert_w((v4i32) out, 1, in1); \
}

Definition at line 1152 of file generic_macros_msa.h.

◆ INSERT_W2_UB

#define INSERT_W2_UB (   ...)    INSERT_W2(v16u8, __VA_ARGS__)

Definition at line 1157 of file generic_macros_msa.h.

◆ INSERT_W2_SB

#define INSERT_W2_SB (   ...)    INSERT_W2(v16i8, __VA_ARGS__)

Definition at line 1158 of file generic_macros_msa.h.

◆ INSERT_W4

#define INSERT_W4 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  out 
)
Value:
{ \
out = (RTYPE) __msa_insert_w((v4i32) out, 0, in0); \
out = (RTYPE) __msa_insert_w((v4i32) out, 1, in1); \
out = (RTYPE) __msa_insert_w((v4i32) out, 2, in2); \
out = (RTYPE) __msa_insert_w((v4i32) out, 3, in3); \
}

Definition at line 1160 of file generic_macros_msa.h.

◆ INSERT_W4_UB

#define INSERT_W4_UB (   ...)    INSERT_W4(v16u8, __VA_ARGS__)

Definition at line 1167 of file generic_macros_msa.h.

◆ INSERT_W4_SB

#define INSERT_W4_SB (   ...)    INSERT_W4(v16i8, __VA_ARGS__)

Definition at line 1168 of file generic_macros_msa.h.

◆ INSERT_W4_SH

#define INSERT_W4_SH (   ...)    INSERT_W4(v8i16, __VA_ARGS__)

Definition at line 1169 of file generic_macros_msa.h.

◆ INSERT_W4_SW

#define INSERT_W4_SW (   ...)    INSERT_W4(v4i32, __VA_ARGS__)

Definition at line 1170 of file generic_macros_msa.h.

◆ INSERT_D2

#define INSERT_D2 (   RTYPE,
  in0,
  in1,
  out 
)
Value:
{ \
out = (RTYPE) __msa_insert_d((v2i64) out, 0, in0); \
out = (RTYPE) __msa_insert_d((v2i64) out, 1, in1); \
}

Definition at line 1178 of file generic_macros_msa.h.

◆ INSERT_D2_UB

#define INSERT_D2_UB (   ...)    INSERT_D2(v16u8, __VA_ARGS__)

Definition at line 1183 of file generic_macros_msa.h.

◆ INSERT_D2_SB

#define INSERT_D2_SB (   ...)    INSERT_D2(v16i8, __VA_ARGS__)

Definition at line 1184 of file generic_macros_msa.h.

◆ INSERT_D2_SH

#define INSERT_D2_SH (   ...)    INSERT_D2(v8i16, __VA_ARGS__)

Definition at line 1185 of file generic_macros_msa.h.

◆ INSERT_D2_SD

#define INSERT_D2_SD (   ...)    INSERT_D2(v2i64, __VA_ARGS__)

Definition at line 1186 of file generic_macros_msa.h.

◆ ILVEV_B2

#define ILVEV_B2 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_ilvev_b((v16i8) in1, (v16i8) in0); \
out1 = (RTYPE) __msa_ilvev_b((v16i8) in3, (v16i8) in2); \
}

Definition at line 1197 of file generic_macros_msa.h.

◆ ILVEV_B2_UB

#define ILVEV_B2_UB (   ...)    ILVEV_B2(v16u8, __VA_ARGS__)

Definition at line 1202 of file generic_macros_msa.h.

◆ ILVEV_B2_SB

#define ILVEV_B2_SB (   ...)    ILVEV_B2(v16i8, __VA_ARGS__)

Definition at line 1203 of file generic_macros_msa.h.

◆ ILVEV_B2_SH

#define ILVEV_B2_SH (   ...)    ILVEV_B2(v8i16, __VA_ARGS__)

Definition at line 1204 of file generic_macros_msa.h.

◆ ILVEV_B2_SD

#define ILVEV_B2_SD (   ...)    ILVEV_B2(v2i64, __VA_ARGS__)

Definition at line 1205 of file generic_macros_msa.h.

◆ ILVEV_H2

#define ILVEV_H2 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_ilvev_h((v8i16) in1, (v8i16) in0); \
out1 = (RTYPE) __msa_ilvev_h((v8i16) in3, (v8i16) in2); \
}

Definition at line 1216 of file generic_macros_msa.h.

◆ ILVEV_H2_UB

#define ILVEV_H2_UB (   ...)    ILVEV_H2(v16u8, __VA_ARGS__)

Definition at line 1221 of file generic_macros_msa.h.

◆ ILVEV_H2_SH

#define ILVEV_H2_SH (   ...)    ILVEV_H2(v8i16, __VA_ARGS__)

Definition at line 1222 of file generic_macros_msa.h.

◆ ILVEV_H2_SW

#define ILVEV_H2_SW (   ...)    ILVEV_H2(v4i32, __VA_ARGS__)

Definition at line 1223 of file generic_macros_msa.h.

◆ ILVEV_W2

#define ILVEV_W2 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_ilvev_w((v4i32) in1, (v4i32) in0); \
out1 = (RTYPE) __msa_ilvev_w((v4i32) in3, (v4i32) in2); \
}

Definition at line 1234 of file generic_macros_msa.h.

◆ ILVEV_W2_UB

#define ILVEV_W2_UB (   ...)    ILVEV_W2(v16u8, __VA_ARGS__)

Definition at line 1239 of file generic_macros_msa.h.

◆ ILVEV_W2_SB

#define ILVEV_W2_SB (   ...)    ILVEV_W2(v16i8, __VA_ARGS__)

Definition at line 1240 of file generic_macros_msa.h.

◆ ILVEV_W2_UH

#define ILVEV_W2_UH (   ...)    ILVEV_W2(v8u16, __VA_ARGS__)

Definition at line 1241 of file generic_macros_msa.h.

◆ ILVEV_W2_SD

#define ILVEV_W2_SD (   ...)    ILVEV_W2(v2i64, __VA_ARGS__)

Definition at line 1242 of file generic_macros_msa.h.

◆ ILVEV_D2

#define ILVEV_D2 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_ilvev_d((v2i64) in1, (v2i64) in0); \
out1 = (RTYPE) __msa_ilvev_d((v2i64) in3, (v2i64) in2); \
}

Definition at line 1253 of file generic_macros_msa.h.

◆ ILVEV_D2_UB

#define ILVEV_D2_UB (   ...)    ILVEV_D2(v16u8, __VA_ARGS__)

Definition at line 1258 of file generic_macros_msa.h.

◆ ILVEV_D2_SB

#define ILVEV_D2_SB (   ...)    ILVEV_D2(v16i8, __VA_ARGS__)

Definition at line 1259 of file generic_macros_msa.h.

◆ ILVEV_D2_SW

#define ILVEV_D2_SW (   ...)    ILVEV_D2(v4i32, __VA_ARGS__)

Definition at line 1260 of file generic_macros_msa.h.

◆ ILVL_B2

#define ILVL_B2 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_ilvl_b((v16i8) in0, (v16i8) in1); \
out1 = (RTYPE) __msa_ilvl_b((v16i8) in2, (v16i8) in3); \
}

Definition at line 1271 of file generic_macros_msa.h.

◆ ILVL_B2_UB

#define ILVL_B2_UB (   ...)    ILVL_B2(v16u8, __VA_ARGS__)

Definition at line 1276 of file generic_macros_msa.h.

◆ ILVL_B2_SB

#define ILVL_B2_SB (   ...)    ILVL_B2(v16i8, __VA_ARGS__)

Definition at line 1277 of file generic_macros_msa.h.

◆ ILVL_B2_UH

#define ILVL_B2_UH (   ...)    ILVL_B2(v8u16, __VA_ARGS__)

Definition at line 1278 of file generic_macros_msa.h.

◆ ILVL_B2_SH

#define ILVL_B2_SH (   ...)    ILVL_B2(v8i16, __VA_ARGS__)

Definition at line 1279 of file generic_macros_msa.h.

◆ ILVL_B4

#define ILVL_B4 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
ILVL_B2(RTYPE, in0, in1, in2, in3, out0, out1); \
ILVL_B2(RTYPE, in4, in5, in6, in7, out2, out3); \
}

Definition at line 1281 of file generic_macros_msa.h.

◆ ILVL_B4_UB

#define ILVL_B4_UB (   ...)    ILVL_B4(v16u8, __VA_ARGS__)

Definition at line 1287 of file generic_macros_msa.h.

◆ ILVL_B4_SB

#define ILVL_B4_SB (   ...)    ILVL_B4(v16i8, __VA_ARGS__)

Definition at line 1288 of file generic_macros_msa.h.

◆ ILVL_B4_UH

#define ILVL_B4_UH (   ...)    ILVL_B4(v8u16, __VA_ARGS__)

Definition at line 1289 of file generic_macros_msa.h.

◆ ILVL_B4_SH

#define ILVL_B4_SH (   ...)    ILVL_B4(v8i16, __VA_ARGS__)

Definition at line 1290 of file generic_macros_msa.h.

◆ ILVL_H2

#define ILVL_H2 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_ilvl_h((v8i16) in0, (v8i16) in1); \
out1 = (RTYPE) __msa_ilvl_h((v8i16) in2, (v8i16) in3); \
}

Definition at line 1301 of file generic_macros_msa.h.

◆ ILVL_H2_SH

#define ILVL_H2_SH (   ...)    ILVL_H2(v8i16, __VA_ARGS__)

Definition at line 1306 of file generic_macros_msa.h.

◆ ILVL_H2_SW

#define ILVL_H2_SW (   ...)    ILVL_H2(v4i32, __VA_ARGS__)

Definition at line 1307 of file generic_macros_msa.h.

◆ ILVL_H4

#define ILVL_H4 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
ILVL_H2(RTYPE, in0, in1, in2, in3, out0, out1); \
ILVL_H2(RTYPE, in4, in5, in6, in7, out2, out3); \
}

Definition at line 1309 of file generic_macros_msa.h.

◆ ILVL_H4_SH

#define ILVL_H4_SH (   ...)    ILVL_H4(v8i16, __VA_ARGS__)

Definition at line 1315 of file generic_macros_msa.h.

◆ ILVL_H4_SW

#define ILVL_H4_SW (   ...)    ILVL_H4(v4i32, __VA_ARGS__)

Definition at line 1316 of file generic_macros_msa.h.

◆ ILVL_W2

#define ILVL_W2 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_ilvl_w((v4i32) in0, (v4i32) in1); \
out1 = (RTYPE) __msa_ilvl_w((v4i32) in2, (v4i32) in3); \
}

Definition at line 1327 of file generic_macros_msa.h.

◆ ILVL_W2_UB

#define ILVL_W2_UB (   ...)    ILVL_W2(v16u8, __VA_ARGS__)

Definition at line 1332 of file generic_macros_msa.h.

◆ ILVL_W2_SB

#define ILVL_W2_SB (   ...)    ILVL_W2(v16i8, __VA_ARGS__)

Definition at line 1333 of file generic_macros_msa.h.

◆ ILVL_W2_SH

#define ILVL_W2_SH (   ...)    ILVL_W2(v8i16, __VA_ARGS__)

Definition at line 1334 of file generic_macros_msa.h.

◆ ILVR_B2

#define ILVR_B2 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_ilvr_b((v16i8) in0, (v16i8) in1); \
out1 = (RTYPE) __msa_ilvr_b((v16i8) in2, (v16i8) in3); \
}

Definition at line 1346 of file generic_macros_msa.h.

◆ ILVR_B2_UB

#define ILVR_B2_UB (   ...)    ILVR_B2(v16u8, __VA_ARGS__)

Definition at line 1351 of file generic_macros_msa.h.

◆ ILVR_B2_SB

#define ILVR_B2_SB (   ...)    ILVR_B2(v16i8, __VA_ARGS__)

Definition at line 1352 of file generic_macros_msa.h.

◆ ILVR_B2_UH

#define ILVR_B2_UH (   ...)    ILVR_B2(v8u16, __VA_ARGS__)

Definition at line 1353 of file generic_macros_msa.h.

◆ ILVR_B2_SH

#define ILVR_B2_SH (   ...)    ILVR_B2(v8i16, __VA_ARGS__)

Definition at line 1354 of file generic_macros_msa.h.

◆ ILVR_B2_SW

#define ILVR_B2_SW (   ...)    ILVR_B2(v4i32, __VA_ARGS__)

Definition at line 1355 of file generic_macros_msa.h.

◆ ILVR_B3

#define ILVR_B3 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  out0,
  out1,
  out2 
)
Value:
{ \
ILVR_B2(RTYPE, in0, in1, in2, in3, out0, out1); \
out2 = (RTYPE) __msa_ilvr_b((v16i8) in4, (v16i8) in5); \
}

Definition at line 1357 of file generic_macros_msa.h.

◆ ILVR_B3_UB

#define ILVR_B3_UB (   ...)    ILVR_B3(v16u8, __VA_ARGS__)

Definition at line 1362 of file generic_macros_msa.h.

◆ ILVR_B3_SB

#define ILVR_B3_SB (   ...)    ILVR_B3(v16i8, __VA_ARGS__)

Definition at line 1363 of file generic_macros_msa.h.

◆ ILVR_B3_UH

#define ILVR_B3_UH (   ...)    ILVR_B3(v8u16, __VA_ARGS__)

Definition at line 1364 of file generic_macros_msa.h.

◆ ILVR_B3_SH

#define ILVR_B3_SH (   ...)    ILVR_B3(v8i16, __VA_ARGS__)

Definition at line 1365 of file generic_macros_msa.h.

◆ ILVR_B4

#define ILVR_B4 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
ILVR_B2(RTYPE, in0, in1, in2, in3, out0, out1); \
ILVR_B2(RTYPE, in4, in5, in6, in7, out2, out3); \
}

Definition at line 1367 of file generic_macros_msa.h.

◆ ILVR_B4_UB

#define ILVR_B4_UB (   ...)    ILVR_B4(v16u8, __VA_ARGS__)

Definition at line 1373 of file generic_macros_msa.h.

◆ ILVR_B4_SB

#define ILVR_B4_SB (   ...)    ILVR_B4(v16i8, __VA_ARGS__)

Definition at line 1374 of file generic_macros_msa.h.

◆ ILVR_B4_UH

#define ILVR_B4_UH (   ...)    ILVR_B4(v8u16, __VA_ARGS__)

Definition at line 1375 of file generic_macros_msa.h.

◆ ILVR_B4_SH

#define ILVR_B4_SH (   ...)    ILVR_B4(v8i16, __VA_ARGS__)

Definition at line 1376 of file generic_macros_msa.h.

◆ ILVR_B4_SW

#define ILVR_B4_SW (   ...)    ILVR_B4(v4i32, __VA_ARGS__)

Definition at line 1377 of file generic_macros_msa.h.

◆ ILVR_B8

#define ILVR_B8 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  in8,
  in9,
  in10,
  in11,
  in12,
  in13,
  in14,
  in15,
  out0,
  out1,
  out2,
  out3,
  out4,
  out5,
  out6,
  out7 
)
Value:
{ \
ILVR_B4(RTYPE, in0, in1, in2, in3, in4, in5, in6, in7, \
out0, out1, out2, out3); \
ILVR_B4(RTYPE, in8, in9, in10, in11, in12, in13, in14, in15, \
out4, out5, out6, out7); \
}

Definition at line 1379 of file generic_macros_msa.h.

◆ ILVR_B8_UH

#define ILVR_B8_UH (   ...)    ILVR_B8(v8u16, __VA_ARGS__)

Definition at line 1388 of file generic_macros_msa.h.

◆ ILVR_B8_SW

#define ILVR_B8_SW (   ...)    ILVR_B8(v4i32, __VA_ARGS__)

Definition at line 1389 of file generic_macros_msa.h.

◆ ILVR_H2

#define ILVR_H2 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_ilvr_h((v8i16) in0, (v8i16) in1); \
out1 = (RTYPE) __msa_ilvr_h((v8i16) in2, (v8i16) in3); \
}

Definition at line 1401 of file generic_macros_msa.h.

◆ ILVR_H2_SH

#define ILVR_H2_SH (   ...)    ILVR_H2(v8i16, __VA_ARGS__)

Definition at line 1406 of file generic_macros_msa.h.

◆ ILVR_H2_SW

#define ILVR_H2_SW (   ...)    ILVR_H2(v4i32, __VA_ARGS__)

Definition at line 1407 of file generic_macros_msa.h.

◆ ILVR_H3

#define ILVR_H3 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  out0,
  out1,
  out2 
)
Value:
{ \
ILVR_H2(RTYPE, in0, in1, in2, in3, out0, out1); \
out2 = (RTYPE) __msa_ilvr_h((v8i16) in4, (v8i16) in5); \
}

Definition at line 1409 of file generic_macros_msa.h.

◆ ILVR_H3_SH

#define ILVR_H3_SH (   ...)    ILVR_H3(v8i16, __VA_ARGS__)

Definition at line 1414 of file generic_macros_msa.h.

◆ ILVR_H4

#define ILVR_H4 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
ILVR_H2(RTYPE, in0, in1, in2, in3, out0, out1); \
ILVR_H2(RTYPE, in4, in5, in6, in7, out2, out3); \
}

Definition at line 1416 of file generic_macros_msa.h.

◆ ILVR_H4_SH

#define ILVR_H4_SH (   ...)    ILVR_H4(v8i16, __VA_ARGS__)

Definition at line 1422 of file generic_macros_msa.h.

◆ ILVR_H4_SW

#define ILVR_H4_SW (   ...)    ILVR_H4(v4i32, __VA_ARGS__)

Definition at line 1423 of file generic_macros_msa.h.

◆ ILVR_W2

#define ILVR_W2 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_ilvr_w((v4i32) in0, (v4i32) in1); \
out1 = (RTYPE) __msa_ilvr_w((v4i32) in2, (v4i32) in3); \
}

Definition at line 1425 of file generic_macros_msa.h.

◆ ILVR_W2_UB

#define ILVR_W2_UB (   ...)    ILVR_W2(v16u8, __VA_ARGS__)

Definition at line 1430 of file generic_macros_msa.h.

◆ ILVR_W2_SB

#define ILVR_W2_SB (   ...)    ILVR_W2(v16i8, __VA_ARGS__)

Definition at line 1431 of file generic_macros_msa.h.

◆ ILVR_W2_SH

#define ILVR_W2_SH (   ...)    ILVR_W2(v8i16, __VA_ARGS__)

Definition at line 1432 of file generic_macros_msa.h.

◆ ILVR_W4

#define ILVR_W4 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
ILVR_W2(RTYPE, in0, in1, in2, in3, out0, out1); \
ILVR_W2(RTYPE, in4, in5, in6, in7, out2, out3); \
}

Definition at line 1434 of file generic_macros_msa.h.

◆ ILVR_W4_SB

#define ILVR_W4_SB (   ...)    ILVR_W4(v16i8, __VA_ARGS__)

Definition at line 1440 of file generic_macros_msa.h.

◆ ILVR_W4_UB

#define ILVR_W4_UB (   ...)    ILVR_W4(v16u8, __VA_ARGS__)

Definition at line 1441 of file generic_macros_msa.h.

◆ ILVR_D2

#define ILVR_D2 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_ilvr_d((v2i64) in0, (v2i64) in1); \
out1 = (RTYPE) __msa_ilvr_d((v2i64) in2, (v2i64) in3); \
}

Definition at line 1452 of file generic_macros_msa.h.

◆ ILVR_D2_UB

#define ILVR_D2_UB (   ...)    ILVR_D2(v16u8, __VA_ARGS__)

Definition at line 1457 of file generic_macros_msa.h.

◆ ILVR_D2_SB

#define ILVR_D2_SB (   ...)    ILVR_D2(v16i8, __VA_ARGS__)

Definition at line 1458 of file generic_macros_msa.h.

◆ ILVR_D2_SH

#define ILVR_D2_SH (   ...)    ILVR_D2(v8i16, __VA_ARGS__)

Definition at line 1459 of file generic_macros_msa.h.

◆ ILVR_D3

#define ILVR_D3 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  out0,
  out1,
  out2 
)
Value:
{ \
ILVR_D2(RTYPE, in0, in1, in2, in3, out0, out1); \
out2 = (RTYPE) __msa_ilvr_d((v2i64) in4, (v2i64) in5); \
}

Definition at line 1461 of file generic_macros_msa.h.

◆ ILVR_D3_SB

#define ILVR_D3_SB (   ...)    ILVR_D3(v16i8, __VA_ARGS__)

Definition at line 1466 of file generic_macros_msa.h.

◆ ILVR_D4

#define ILVR_D4 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
ILVR_D2(RTYPE, in0, in1, in2, in3, out0, out1); \
ILVR_D2(RTYPE, in4, in5, in6, in7, out2, out3); \
}

Definition at line 1468 of file generic_macros_msa.h.

◆ ILVR_D4_SB

#define ILVR_D4_SB (   ...)    ILVR_D4(v16i8, __VA_ARGS__)

Definition at line 1474 of file generic_macros_msa.h.

◆ ILVR_D4_UB

#define ILVR_D4_UB (   ...)    ILVR_D4(v16u8, __VA_ARGS__)

Definition at line 1475 of file generic_macros_msa.h.

◆ ILVL_D2

#define ILVL_D2 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_ilvl_d((v2i64) in0, (v2i64) in1); \
out1 = (RTYPE) __msa_ilvl_d((v2i64) in2, (v2i64) in3); \
}

Definition at line 1486 of file generic_macros_msa.h.

◆ ILVL_D2_UB

#define ILVL_D2_UB (   ...)    ILVL_D2(v16u8, __VA_ARGS__)

Definition at line 1491 of file generic_macros_msa.h.

◆ ILVL_D2_SB

#define ILVL_D2_SB (   ...)    ILVL_D2(v16i8, __VA_ARGS__)

Definition at line 1492 of file generic_macros_msa.h.

◆ ILVL_D2_SH

#define ILVL_D2_SH (   ...)    ILVL_D2(v8i16, __VA_ARGS__)

Definition at line 1493 of file generic_macros_msa.h.

◆ ILVRL_B2

#define ILVRL_B2 (   RTYPE,
  in0,
  in1,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_ilvr_b((v16i8) in0, (v16i8) in1); \
out1 = (RTYPE) __msa_ilvl_b((v16i8) in0, (v16i8) in1); \
}

Definition at line 1504 of file generic_macros_msa.h.

◆ ILVRL_B2_UB

#define ILVRL_B2_UB (   ...)    ILVRL_B2(v16u8, __VA_ARGS__)

Definition at line 1509 of file generic_macros_msa.h.

◆ ILVRL_B2_SB

#define ILVRL_B2_SB (   ...)    ILVRL_B2(v16i8, __VA_ARGS__)

Definition at line 1510 of file generic_macros_msa.h.

◆ ILVRL_B2_UH

#define ILVRL_B2_UH (   ...)    ILVRL_B2(v8u16, __VA_ARGS__)

Definition at line 1511 of file generic_macros_msa.h.

◆ ILVRL_B2_SH

#define ILVRL_B2_SH (   ...)    ILVRL_B2(v8i16, __VA_ARGS__)

Definition at line 1512 of file generic_macros_msa.h.

◆ ILVRL_B2_SW

#define ILVRL_B2_SW (   ...)    ILVRL_B2(v4i32, __VA_ARGS__)

Definition at line 1513 of file generic_macros_msa.h.

◆ ILVRL_H2

#define ILVRL_H2 (   RTYPE,
  in0,
  in1,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_ilvr_h((v8i16) in0, (v8i16) in1); \
out1 = (RTYPE) __msa_ilvl_h((v8i16) in0, (v8i16) in1); \
}

Definition at line 1515 of file generic_macros_msa.h.

◆ ILVRL_H2_UB

#define ILVRL_H2_UB (   ...)    ILVRL_H2(v16u8, __VA_ARGS__)

Definition at line 1520 of file generic_macros_msa.h.

◆ ILVRL_H2_SB

#define ILVRL_H2_SB (   ...)    ILVRL_H2(v16i8, __VA_ARGS__)

Definition at line 1521 of file generic_macros_msa.h.

◆ ILVRL_H2_SH

#define ILVRL_H2_SH (   ...)    ILVRL_H2(v8i16, __VA_ARGS__)

Definition at line 1522 of file generic_macros_msa.h.

◆ ILVRL_H2_SW

#define ILVRL_H2_SW (   ...)    ILVRL_H2(v4i32, __VA_ARGS__)

Definition at line 1523 of file generic_macros_msa.h.

◆ ILVRL_W2

#define ILVRL_W2 (   RTYPE,
  in0,
  in1,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_ilvr_w((v4i32) in0, (v4i32) in1); \
out1 = (RTYPE) __msa_ilvl_w((v4i32) in0, (v4i32) in1); \
}

Definition at line 1525 of file generic_macros_msa.h.

◆ ILVRL_W2_UB

#define ILVRL_W2_UB (   ...)    ILVRL_W2(v16u8, __VA_ARGS__)

Definition at line 1530 of file generic_macros_msa.h.

◆ ILVRL_W2_SH

#define ILVRL_W2_SH (   ...)    ILVRL_W2(v8i16, __VA_ARGS__)

Definition at line 1531 of file generic_macros_msa.h.

◆ ILVRL_W2_SW

#define ILVRL_W2_SW (   ...)    ILVRL_W2(v4i32, __VA_ARGS__)

Definition at line 1532 of file generic_macros_msa.h.

◆ MAXI_SH2

#define MAXI_SH2 (   RTYPE,
  in0,
  in1,
  max_val 
)
Value:
{ \
in0 = (RTYPE) __msa_maxi_s_h((v8i16) in0, max_val); \
in1 = (RTYPE) __msa_maxi_s_h((v8i16) in1, max_val); \
}

Definition at line 1542 of file generic_macros_msa.h.

◆ MAXI_SH2_UH

#define MAXI_SH2_UH (   ...)    MAXI_SH2(v8u16, __VA_ARGS__)

Definition at line 1547 of file generic_macros_msa.h.

◆ MAXI_SH2_SH

#define MAXI_SH2_SH (   ...)    MAXI_SH2(v8i16, __VA_ARGS__)

Definition at line 1548 of file generic_macros_msa.h.

◆ MAXI_SH4

#define MAXI_SH4 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  max_val 
)
Value:
{ \
MAXI_SH2(RTYPE, in0, in1, max_val); \
MAXI_SH2(RTYPE, in2, in3, max_val); \
}

Definition at line 1550 of file generic_macros_msa.h.

◆ MAXI_SH4_UH

#define MAXI_SH4_UH (   ...)    MAXI_SH4(v8u16, __VA_ARGS__)

Definition at line 1555 of file generic_macros_msa.h.

◆ MAXI_SH4_SH

#define MAXI_SH4_SH (   ...)    MAXI_SH4(v8i16, __VA_ARGS__)

Definition at line 1556 of file generic_macros_msa.h.

◆ MAXI_SH8

#define MAXI_SH8 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  max_val 
)
Value:
{ \
MAXI_SH4(RTYPE, in0, in1, in2, in3, max_val); \
MAXI_SH4(RTYPE, in4, in5, in6, in7, max_val); \
}

Definition at line 1558 of file generic_macros_msa.h.

◆ MAXI_SH8_UH

#define MAXI_SH8_UH (   ...)    MAXI_SH8(v8u16, __VA_ARGS__)

Definition at line 1563 of file generic_macros_msa.h.

◆ MAXI_SH8_SH

#define MAXI_SH8_SH (   ...)    MAXI_SH8(v8i16, __VA_ARGS__)

Definition at line 1564 of file generic_macros_msa.h.

◆ SAT_UH2

#define SAT_UH2 (   RTYPE,
  in0,
  in1,
  sat_val 
)
Value:
{ \
in0 = (RTYPE) __msa_sat_u_h((v8u16) in0, sat_val); \
in1 = (RTYPE) __msa_sat_u_h((v8u16) in1, sat_val); \
}

Definition at line 1576 of file generic_macros_msa.h.

◆ SAT_UH2_UH

#define SAT_UH2_UH (   ...)    SAT_UH2(v8u16, __VA_ARGS__)

Definition at line 1581 of file generic_macros_msa.h.

◆ SAT_UH2_SH

#define SAT_UH2_SH (   ...)    SAT_UH2(v8i16, __VA_ARGS__)

Definition at line 1582 of file generic_macros_msa.h.

◆ SAT_UH4

#define SAT_UH4 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  sat_val 
)
Value:
{ \
SAT_UH2(RTYPE, in0, in1, sat_val); \
SAT_UH2(RTYPE, in2, in3, sat_val); \
}

Definition at line 1584 of file generic_macros_msa.h.

◆ SAT_UH4_UH

#define SAT_UH4_UH (   ...)    SAT_UH4(v8u16, __VA_ARGS__)

Definition at line 1589 of file generic_macros_msa.h.

◆ SAT_UH4_SH

#define SAT_UH4_SH (   ...)    SAT_UH4(v8i16, __VA_ARGS__)

Definition at line 1590 of file generic_macros_msa.h.

◆ SAT_UH8

#define SAT_UH8 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  sat_val 
)
Value:
{ \
SAT_UH4(RTYPE, in0, in1, in2, in3, sat_val); \
SAT_UH4(RTYPE, in4, in5, in6, in7, sat_val); \
}

Definition at line 1592 of file generic_macros_msa.h.

◆ SAT_UH8_UH

#define SAT_UH8_UH (   ...)    SAT_UH8(v8u16, __VA_ARGS__)

Definition at line 1597 of file generic_macros_msa.h.

◆ SAT_UH8_SH

#define SAT_UH8_SH (   ...)    SAT_UH8(v8i16, __VA_ARGS__)

Definition at line 1598 of file generic_macros_msa.h.

◆ SAT_SH2

#define SAT_SH2 (   RTYPE,
  in0,
  in1,
  sat_val 
)
Value:
{ \
in0 = (RTYPE) __msa_sat_s_h((v8i16) in0, sat_val); \
in1 = (RTYPE) __msa_sat_s_h((v8i16) in1, sat_val); \
}

Definition at line 1610 of file generic_macros_msa.h.

◆ SAT_SH2_SH

#define SAT_SH2_SH (   ...)    SAT_SH2(v8i16, __VA_ARGS__)

Definition at line 1615 of file generic_macros_msa.h.

◆ SAT_SH3

#define SAT_SH3 (   RTYPE,
  in0,
  in1,
  in2,
  sat_val 
)
Value:
{ \
SAT_SH2(RTYPE, in0, in1, sat_val); \
in2 = (RTYPE) __msa_sat_s_h((v8i16) in2, sat_val); \
}

Definition at line 1617 of file generic_macros_msa.h.

◆ SAT_SH3_SH

#define SAT_SH3_SH (   ...)    SAT_SH3(v8i16, __VA_ARGS__)

Definition at line 1622 of file generic_macros_msa.h.

◆ SAT_SH4

#define SAT_SH4 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  sat_val 
)
Value:
{ \
SAT_SH2(RTYPE, in0, in1, sat_val); \
SAT_SH2(RTYPE, in2, in3, sat_val); \
}

Definition at line 1624 of file generic_macros_msa.h.

◆ SAT_SH4_SH

#define SAT_SH4_SH (   ...)    SAT_SH4(v8i16, __VA_ARGS__)

Definition at line 1629 of file generic_macros_msa.h.

◆ SAT_SW2

#define SAT_SW2 (   RTYPE,
  in0,
  in1,
  sat_val 
)
Value:
{ \
in0 = (RTYPE) __msa_sat_s_w((v4i32) in0, sat_val); \
in1 = (RTYPE) __msa_sat_s_w((v4i32) in1, sat_val); \
}

Definition at line 1641 of file generic_macros_msa.h.

◆ SAT_SW2_SW

#define SAT_SW2_SW (   ...)    SAT_SW2(v4i32, __VA_ARGS__)

Definition at line 1646 of file generic_macros_msa.h.

◆ SAT_SW4

#define SAT_SW4 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  sat_val 
)
Value:
{ \
SAT_SW2(RTYPE, in0, in1, sat_val); \
SAT_SW2(RTYPE, in2, in3, sat_val); \
}

Definition at line 1648 of file generic_macros_msa.h.

◆ SAT_SW4_SW

#define SAT_SW4_SW (   ...)    SAT_SW4(v4i32, __VA_ARGS__)

Definition at line 1653 of file generic_macros_msa.h.

◆ SPLATI_H2

#define SPLATI_H2 (   RTYPE,
  in,
  idx0,
  idx1,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_splati_h((v8i16) in, idx0); \
out1 = (RTYPE) __msa_splati_h((v8i16) in, idx1); \
}

Definition at line 1664 of file generic_macros_msa.h.

◆ SPLATI_H2_SB

#define SPLATI_H2_SB (   ...)    SPLATI_H2(v16i8, __VA_ARGS__)

Definition at line 1669 of file generic_macros_msa.h.

◆ SPLATI_H2_SH

#define SPLATI_H2_SH (   ...)    SPLATI_H2(v8i16, __VA_ARGS__)

Definition at line 1670 of file generic_macros_msa.h.

◆ SPLATI_H3

#define SPLATI_H3 (   RTYPE,
  in,
  idx0,
  idx1,
  idx2,
  out0,
  out1,
  out2 
)
Value:
{ \
SPLATI_H2(RTYPE, in, idx0, idx1, out0, out1); \
out2 = (RTYPE) __msa_splati_h((v8i16) in, idx2); \
}

Definition at line 1672 of file generic_macros_msa.h.

◆ SPLATI_H3_SB

#define SPLATI_H3_SB (   ...)    SPLATI_H3(v16i8, __VA_ARGS__)

Definition at line 1678 of file generic_macros_msa.h.

◆ SPLATI_H3_SH

#define SPLATI_H3_SH (   ...)    SPLATI_H3(v8i16, __VA_ARGS__)

Definition at line 1679 of file generic_macros_msa.h.

◆ SPLATI_H4

#define SPLATI_H4 (   RTYPE,
  in,
  idx0,
  idx1,
  idx2,
  idx3,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
SPLATI_H2(RTYPE, in, idx0, idx1, out0, out1); \
SPLATI_H2(RTYPE, in, idx2, idx3, out2, out3); \
}

Definition at line 1681 of file generic_macros_msa.h.

◆ SPLATI_H4_SB

#define SPLATI_H4_SB (   ...)    SPLATI_H4(v16i8, __VA_ARGS__)

Definition at line 1687 of file generic_macros_msa.h.

◆ SPLATI_H4_SH

#define SPLATI_H4_SH (   ...)    SPLATI_H4(v8i16, __VA_ARGS__)

Definition at line 1688 of file generic_macros_msa.h.

◆ SPLATI_W2

#define SPLATI_W2 (   RTYPE,
  in,
  stidx,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_splati_w((v4i32) in, stidx); \
out1 = (RTYPE) __msa_splati_w((v4i32) in, (stidx+1)); \
}

Definition at line 1701 of file generic_macros_msa.h.

◆ SPLATI_W2_SH

#define SPLATI_W2_SH (   ...)    SPLATI_W2(v8i16, __VA_ARGS__)

Definition at line 1706 of file generic_macros_msa.h.

◆ SPLATI_W2_SW

#define SPLATI_W2_SW (   ...)    SPLATI_W2(v4i32, __VA_ARGS__)

Definition at line 1707 of file generic_macros_msa.h.

◆ SPLATI_W4

#define SPLATI_W4 (   RTYPE,
  in,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
SPLATI_W2(RTYPE, in, 0, out0, out1); \
SPLATI_W2(RTYPE, in, 2, out2, out3); \
}

Definition at line 1709 of file generic_macros_msa.h.

◆ SPLATI_W4_SH

#define SPLATI_W4_SH (   ...)    SPLATI_W4(v8i16, __VA_ARGS__)

Definition at line 1714 of file generic_macros_msa.h.

◆ SPLATI_W4_SW

#define SPLATI_W4_SW (   ...)    SPLATI_W4(v4i32, __VA_ARGS__)

Definition at line 1715 of file generic_macros_msa.h.

◆ PCKEV_B2

#define PCKEV_B2 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_pckev_b((v16i8) in0, (v16i8) in1); \
out1 = (RTYPE) __msa_pckev_b((v16i8) in2, (v16i8) in3); \
}

Definition at line 1728 of file generic_macros_msa.h.

◆ PCKEV_B2_SB

#define PCKEV_B2_SB (   ...)    PCKEV_B2(v16i8, __VA_ARGS__)

Definition at line 1733 of file generic_macros_msa.h.

◆ PCKEV_B2_UB

#define PCKEV_B2_UB (   ...)    PCKEV_B2(v16u8, __VA_ARGS__)

Definition at line 1734 of file generic_macros_msa.h.

◆ PCKEV_B2_SH

#define PCKEV_B2_SH (   ...)    PCKEV_B2(v8i16, __VA_ARGS__)

Definition at line 1735 of file generic_macros_msa.h.

◆ PCKEV_B2_SW

#define PCKEV_B2_SW (   ...)    PCKEV_B2(v4i32, __VA_ARGS__)

Definition at line 1736 of file generic_macros_msa.h.

◆ PCKEV_B3

#define PCKEV_B3 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  out0,
  out1,
  out2 
)
Value:
{ \
PCKEV_B2(RTYPE, in0, in1, in2, in3, out0, out1); \
out2 = (RTYPE) __msa_pckev_b((v16i8) in4, (v16i8) in5); \
}

Definition at line 1738 of file generic_macros_msa.h.

◆ PCKEV_B3_UB

#define PCKEV_B3_UB (   ...)    PCKEV_B3(v16u8, __VA_ARGS__)

Definition at line 1743 of file generic_macros_msa.h.

◆ PCKEV_B3_SB

#define PCKEV_B3_SB (   ...)    PCKEV_B3(v16i8, __VA_ARGS__)

Definition at line 1744 of file generic_macros_msa.h.

◆ PCKEV_B4

#define PCKEV_B4 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
PCKEV_B2(RTYPE, in0, in1, in2, in3, out0, out1); \
PCKEV_B2(RTYPE, in4, in5, in6, in7, out2, out3); \
}

Definition at line 1746 of file generic_macros_msa.h.

◆ PCKEV_B4_SB

#define PCKEV_B4_SB (   ...)    PCKEV_B4(v16i8, __VA_ARGS__)

Definition at line 1752 of file generic_macros_msa.h.

◆ PCKEV_B4_UB

#define PCKEV_B4_UB (   ...)    PCKEV_B4(v16u8, __VA_ARGS__)

Definition at line 1753 of file generic_macros_msa.h.

◆ PCKEV_B4_SH

#define PCKEV_B4_SH (   ...)    PCKEV_B4(v8i16, __VA_ARGS__)

Definition at line 1754 of file generic_macros_msa.h.

◆ PCKEV_B4_SW

#define PCKEV_B4_SW (   ...)    PCKEV_B4(v4i32, __VA_ARGS__)

Definition at line 1755 of file generic_macros_msa.h.

◆ PCKEV_H2

#define PCKEV_H2 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_pckev_h((v8i16) in0, (v8i16) in1); \
out1 = (RTYPE) __msa_pckev_h((v8i16) in2, (v8i16) in3); \
}

Definition at line 1768 of file generic_macros_msa.h.

◆ PCKEV_H2_SH

#define PCKEV_H2_SH (   ...)    PCKEV_H2(v8i16, __VA_ARGS__)

Definition at line 1773 of file generic_macros_msa.h.

◆ PCKEV_H2_SW

#define PCKEV_H2_SW (   ...)    PCKEV_H2(v4i32, __VA_ARGS__)

Definition at line 1774 of file generic_macros_msa.h.

◆ PCKEV_H4

#define PCKEV_H4 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
PCKEV_H2(RTYPE, in0, in1, in2, in3, out0, out1); \
PCKEV_H2(RTYPE, in4, in5, in6, in7, out2, out3); \
}

Definition at line 1776 of file generic_macros_msa.h.

◆ PCKEV_H4_SH

#define PCKEV_H4_SH (   ...)    PCKEV_H4(v8i16, __VA_ARGS__)

Definition at line 1782 of file generic_macros_msa.h.

◆ PCKEV_H4_SW

#define PCKEV_H4_SW (   ...)    PCKEV_H4(v4i32, __VA_ARGS__)

Definition at line 1783 of file generic_macros_msa.h.

◆ PCKEV_D2

#define PCKEV_D2 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_pckev_d((v2i64) in0, (v2i64) in1); \
out1 = (RTYPE) __msa_pckev_d((v2i64) in2, (v2i64) in3); \
}

Definition at line 1796 of file generic_macros_msa.h.

◆ PCKEV_D2_UB

#define PCKEV_D2_UB (   ...)    PCKEV_D2(v16u8, __VA_ARGS__)

Definition at line 1801 of file generic_macros_msa.h.

◆ PCKEV_D2_SB

#define PCKEV_D2_SB (   ...)    PCKEV_D2(v16i8, __VA_ARGS__)

Definition at line 1802 of file generic_macros_msa.h.

◆ PCKEV_D2_SH

#define PCKEV_D2_SH (   ...)    PCKEV_D2(v8i16, __VA_ARGS__)

Definition at line 1803 of file generic_macros_msa.h.

◆ PCKEV_D4

#define PCKEV_D4 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
PCKEV_D2(RTYPE, in0, in1, in2, in3, out0, out1); \
PCKEV_D2(RTYPE, in4, in5, in6, in7, out2, out3); \
}

Definition at line 1805 of file generic_macros_msa.h.

◆ PCKEV_D4_UB

#define PCKEV_D4_UB (   ...)    PCKEV_D4(v16u8, __VA_ARGS__)

Definition at line 1811 of file generic_macros_msa.h.

◆ PCKOD_D2

#define PCKOD_D2 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_pckod_d((v2i64) in0, (v2i64) in1); \
out1 = (RTYPE) __msa_pckod_d((v2i64) in2, (v2i64) in3); \
}

Definition at line 1822 of file generic_macros_msa.h.

◆ PCKOD_D2_UB

#define PCKOD_D2_UB (   ...)    PCKOD_D2(v16u8, __VA_ARGS__)

Definition at line 1827 of file generic_macros_msa.h.

◆ PCKOD_D2_SH

#define PCKOD_D2_SH (   ...)    PCKOD_D2(v8i16, __VA_ARGS__)

Definition at line 1828 of file generic_macros_msa.h.

◆ PCKOD_D2_SD

#define PCKOD_D2_SD (   ...)    PCKOD_D2(v2i64, __VA_ARGS__)

Definition at line 1829 of file generic_macros_msa.h.

◆ XORI_B2_128

#define XORI_B2_128 (   RTYPE,
  in0,
  in1 
)
Value:
{ \
in0 = (RTYPE) __msa_xori_b((v16u8) in0, 128); \
in1 = (RTYPE) __msa_xori_b((v16u8) in1, 128); \
}

Definition at line 1843 of file generic_macros_msa.h.

◆ XORI_B2_128_UB

#define XORI_B2_128_UB (   ...)    XORI_B2_128(v16u8, __VA_ARGS__)

Definition at line 1848 of file generic_macros_msa.h.

◆ XORI_B2_128_SB

#define XORI_B2_128_SB (   ...)    XORI_B2_128(v16i8, __VA_ARGS__)

Definition at line 1849 of file generic_macros_msa.h.

◆ XORI_B2_128_SH

#define XORI_B2_128_SH (   ...)    XORI_B2_128(v8i16, __VA_ARGS__)

Definition at line 1850 of file generic_macros_msa.h.

◆ XORI_B3_128

#define XORI_B3_128 (   RTYPE,
  in0,
  in1,
  in2 
)
Value:
{ \
XORI_B2_128(RTYPE, in0, in1); \
in2 = (RTYPE) __msa_xori_b((v16u8) in2, 128); \
}

Definition at line 1852 of file generic_macros_msa.h.

◆ XORI_B3_128_SB

#define XORI_B3_128_SB (   ...)    XORI_B3_128(v16i8, __VA_ARGS__)

Definition at line 1857 of file generic_macros_msa.h.

◆ XORI_B4_128

#define XORI_B4_128 (   RTYPE,
  in0,
  in1,
  in2,
  in3 
)
Value:
{ \
XORI_B2_128(RTYPE, in0, in1); \
XORI_B2_128(RTYPE, in2, in3); \
}

Definition at line 1859 of file generic_macros_msa.h.

◆ XORI_B4_128_UB

#define XORI_B4_128_UB (   ...)    XORI_B4_128(v16u8, __VA_ARGS__)

Definition at line 1864 of file generic_macros_msa.h.

◆ XORI_B4_128_SB

#define XORI_B4_128_SB (   ...)    XORI_B4_128(v16i8, __VA_ARGS__)

Definition at line 1865 of file generic_macros_msa.h.

◆ XORI_B4_128_SH

#define XORI_B4_128_SH (   ...)    XORI_B4_128(v8i16, __VA_ARGS__)

Definition at line 1866 of file generic_macros_msa.h.

◆ XORI_B5_128

#define XORI_B5_128 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  in4 
)
Value:
{ \
XORI_B3_128(RTYPE, in0, in1, in2); \
XORI_B2_128(RTYPE, in3, in4); \
}

Definition at line 1868 of file generic_macros_msa.h.

◆ XORI_B5_128_SB

#define XORI_B5_128_SB (   ...)    XORI_B5_128(v16i8, __VA_ARGS__)

Definition at line 1873 of file generic_macros_msa.h.

◆ XORI_B6_128

#define XORI_B6_128 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  in4,
  in5 
)
Value:
{ \
XORI_B4_128(RTYPE, in0, in1, in2, in3); \
XORI_B2_128(RTYPE, in4, in5); \
}

Definition at line 1875 of file generic_macros_msa.h.

◆ XORI_B6_128_SB

#define XORI_B6_128_SB (   ...)    XORI_B6_128(v16i8, __VA_ARGS__)

Definition at line 1880 of file generic_macros_msa.h.

◆ XORI_B7_128

#define XORI_B7_128 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6 
)
Value:
{ \
XORI_B4_128(RTYPE, in0, in1, in2, in3); \
XORI_B3_128(RTYPE, in4, in5, in6); \
}

Definition at line 1882 of file generic_macros_msa.h.

◆ XORI_B7_128_SB

#define XORI_B7_128_SB (   ...)    XORI_B7_128(v16i8, __VA_ARGS__)

Definition at line 1887 of file generic_macros_msa.h.

◆ XORI_B8_128

#define XORI_B8_128 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7 
)
Value:
{ \
XORI_B4_128(RTYPE, in0, in1, in2, in3); \
XORI_B4_128(RTYPE, in4, in5, in6, in7); \
}

Definition at line 1889 of file generic_macros_msa.h.

◆ XORI_B8_128_SB

#define XORI_B8_128_SB (   ...)    XORI_B8_128(v16i8, __VA_ARGS__)

Definition at line 1894 of file generic_macros_msa.h.

◆ XORI_B8_128_UB

#define XORI_B8_128_UB (   ...)    XORI_B8_128(v16u8, __VA_ARGS__)

Definition at line 1895 of file generic_macros_msa.h.

◆ ADDS_SH2

#define ADDS_SH2 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  out0,
  out1 
)
Value:
{ \
out0 = (RTYPE) __msa_adds_s_h((v8i16) in0, (v8i16) in1); \
out1 = (RTYPE) __msa_adds_s_h((v8i16) in2, (v8i16) in3); \
}

Definition at line 1906 of file generic_macros_msa.h.

◆ ADDS_SH2_SH

#define ADDS_SH2_SH (   ...)    ADDS_SH2(v8i16, __VA_ARGS__)

Definition at line 1911 of file generic_macros_msa.h.

◆ ADDS_SH4

#define ADDS_SH4 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
ADDS_SH2(RTYPE, in0, in1, in2, in3, out0, out1); \
ADDS_SH2(RTYPE, in4, in5, in6, in7, out2, out3); \
}

Definition at line 1913 of file generic_macros_msa.h.

◆ ADDS_SH4_UH

#define ADDS_SH4_UH (   ...)    ADDS_SH4(v8u16, __VA_ARGS__)

Definition at line 1919 of file generic_macros_msa.h.

◆ ADDS_SH4_SH

#define ADDS_SH4_SH (   ...)    ADDS_SH4(v8i16, __VA_ARGS__)

Definition at line 1920 of file generic_macros_msa.h.

◆ SLLI_2V

#define SLLI_2V (   in0,
  in1,
  shift 
)
Value:
{ \
in0 = in0 << shift; \
in1 = in1 << shift; \
}

Definition at line 1930 of file generic_macros_msa.h.

◆ SLLI_4V

#define SLLI_4V (   in0,
  in1,
  in2,
  in3,
  shift 
)
Value:
{ \
in0 = in0 << shift; \
in1 = in1 << shift; \
in2 = in2 << shift; \
in3 = in3 << shift; \
}

Definition at line 1935 of file generic_macros_msa.h.

◆ SRA_4V

#define SRA_4V (   in0,
  in1,
  in2,
  in3,
  shift 
)
Value:
{ \
in0 = in0 >> shift; \
in1 = in1 >> shift; \
in2 = in2 >> shift; \
in3 = in3 >> shift; \
}

Definition at line 1953 of file generic_macros_msa.h.

◆ SRL_H4

#define SRL_H4 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  shift 
)
Value:
{ \
in0 = (RTYPE) __msa_srl_h((v8i16) in0, (v8i16) shift); \
in1 = (RTYPE) __msa_srl_h((v8i16) in1, (v8i16) shift); \
in2 = (RTYPE) __msa_srl_h((v8i16) in2, (v8i16) shift); \
in3 = (RTYPE) __msa_srl_h((v8i16) in3, (v8i16) shift); \
}

Definition at line 1971 of file generic_macros_msa.h.

◆ SRL_H4_UH

#define SRL_H4_UH (   ...)    SRL_H4(v8u16, __VA_ARGS__)

Definition at line 1978 of file generic_macros_msa.h.

◆ SRLR_H4

#define SRLR_H4 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  shift 
)
Value:
{ \
in0 = (RTYPE) __msa_srlr_h((v8i16) in0, (v8i16) shift); \
in1 = (RTYPE) __msa_srlr_h((v8i16) in1, (v8i16) shift); \
in2 = (RTYPE) __msa_srlr_h((v8i16) in2, (v8i16) shift); \
in3 = (RTYPE) __msa_srlr_h((v8i16) in3, (v8i16) shift); \
}

Definition at line 1980 of file generic_macros_msa.h.

◆ SRLR_H4_UH

#define SRLR_H4_UH (   ...)    SRLR_H4(v8u16, __VA_ARGS__)

Definition at line 1987 of file generic_macros_msa.h.

◆ SRLR_H4_SH

#define SRLR_H4_SH (   ...)    SRLR_H4(v8i16, __VA_ARGS__)

Definition at line 1988 of file generic_macros_msa.h.

◆ SRLR_H8

#define SRLR_H8 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  shift 
)
Value:
{ \
SRLR_H4(RTYPE, in0, in1, in2, in3, shift); \
SRLR_H4(RTYPE, in4, in5, in6, in7, shift); \
}

Definition at line 1990 of file generic_macros_msa.h.

◆ SRLR_H8_UH

#define SRLR_H8_UH (   ...)    SRLR_H8(v8u16, __VA_ARGS__)

Definition at line 1995 of file generic_macros_msa.h.

◆ SRLR_H8_SH

#define SRLR_H8_SH (   ...)    SRLR_H8(v8i16, __VA_ARGS__)

Definition at line 1996 of file generic_macros_msa.h.

◆ SRAR_H2

#define SRAR_H2 (   RTYPE,
  in0,
  in1,
  shift 
)
Value:
{ \
in0 = (RTYPE) __msa_srar_h((v8i16) in0, (v8i16) shift); \
in1 = (RTYPE) __msa_srar_h((v8i16) in1, (v8i16) shift); \
}

Definition at line 2009 of file generic_macros_msa.h.

◆ SRAR_H2_UH

#define SRAR_H2_UH (   ...)    SRAR_H2(v8u16, __VA_ARGS__)

Definition at line 2014 of file generic_macros_msa.h.

◆ SRAR_H2_SH

#define SRAR_H2_SH (   ...)    SRAR_H2(v8i16, __VA_ARGS__)

Definition at line 2015 of file generic_macros_msa.h.

◆ SRAR_H3

#define SRAR_H3 (   RTYPE,
  in0,
  in1,
  in2,
  shift 
)
Value:
{ \
SRAR_H2(RTYPE, in0, in1, shift) \
in2 = (RTYPE) __msa_srar_h((v8i16) in2, (v8i16) shift); \
}

Definition at line 2017 of file generic_macros_msa.h.

◆ SRAR_H3_SH

#define SRAR_H3_SH (   ...)    SRAR_H3(v8i16, __VA_ARGS__)

Definition at line 2022 of file generic_macros_msa.h.

◆ SRAR_H4

#define SRAR_H4 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  shift 
)
Value:
{ \
SRAR_H2(RTYPE, in0, in1, shift) \
SRAR_H2(RTYPE, in2, in3, shift) \
}

Definition at line 2024 of file generic_macros_msa.h.

◆ SRAR_H4_UH

#define SRAR_H4_UH (   ...)    SRAR_H4(v8u16, __VA_ARGS__)

Definition at line 2029 of file generic_macros_msa.h.

◆ SRAR_H4_SH

#define SRAR_H4_SH (   ...)    SRAR_H4(v8i16, __VA_ARGS__)

Definition at line 2030 of file generic_macros_msa.h.

◆ SRAR_W2

#define SRAR_W2 (   RTYPE,
  in0,
  in1,
  shift 
)
Value:
{ \
in0 = (RTYPE) __msa_srar_w((v4i32) in0, (v4i32) shift); \
in1 = (RTYPE) __msa_srar_w((v4i32) in1, (v4i32) shift); \
}

Definition at line 2043 of file generic_macros_msa.h.

◆ SRAR_W2_SW

#define SRAR_W2_SW (   ...)    SRAR_W2(v4i32, __VA_ARGS__)

Definition at line 2048 of file generic_macros_msa.h.

◆ SRAR_W4

#define SRAR_W4 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  shift 
)
Value:
{ \
SRAR_W2(RTYPE, in0, in1, shift) \
SRAR_W2(RTYPE, in2, in3, shift) \
}

Definition at line 2050 of file generic_macros_msa.h.

◆ SRAR_W4_SW

#define SRAR_W4_SW (   ...)    SRAR_W4(v4i32, __VA_ARGS__)

Definition at line 2055 of file generic_macros_msa.h.

◆ SRARI_H2

#define SRARI_H2 (   RTYPE,
  in0,
  in1,
  shift 
)
Value:
{ \
in0 = (RTYPE) __msa_srari_h((v8i16) in0, shift); \
in1 = (RTYPE) __msa_srari_h((v8i16) in1, shift); \
}

Definition at line 2067 of file generic_macros_msa.h.

◆ SRARI_H2_UH

#define SRARI_H2_UH (   ...)    SRARI_H2(v8u16, __VA_ARGS__)

Definition at line 2072 of file generic_macros_msa.h.

◆ SRARI_H2_SH

#define SRARI_H2_SH (   ...)    SRARI_H2(v8i16, __VA_ARGS__)

Definition at line 2073 of file generic_macros_msa.h.

◆ SRARI_H4

#define SRARI_H4 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  shift 
)
Value:
{ \
SRARI_H2(RTYPE, in0, in1, shift); \
SRARI_H2(RTYPE, in2, in3, shift); \
}

Definition at line 2075 of file generic_macros_msa.h.

◆ SRARI_H4_UH

#define SRARI_H4_UH (   ...)    SRARI_H4(v8u16, __VA_ARGS__)

Definition at line 2080 of file generic_macros_msa.h.

◆ SRARI_H4_SH

#define SRARI_H4_SH (   ...)    SRARI_H4(v8i16, __VA_ARGS__)

Definition at line 2081 of file generic_macros_msa.h.

◆ SRARI_W2

#define SRARI_W2 (   RTYPE,
  in0,
  in1,
  shift 
)
Value:
{ \
in0 = (RTYPE) __msa_srari_w((v4i32) in0, shift); \
in1 = (RTYPE) __msa_srari_w((v4i32) in1, shift); \
}

Definition at line 2093 of file generic_macros_msa.h.

◆ SRARI_W2_SW

#define SRARI_W2_SW (   ...)    SRARI_W2(v4i32, __VA_ARGS__)

Definition at line 2098 of file generic_macros_msa.h.

◆ SRARI_W4

#define SRARI_W4 (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  shift 
)
Value:
{ \
SRARI_W2(RTYPE, in0, in1, shift); \
SRARI_W2(RTYPE, in2, in3, shift); \
}

Definition at line 2100 of file generic_macros_msa.h.

◆ SRARI_W4_SH

#define SRARI_W4_SH (   ...)    SRARI_W4(v8i16, __VA_ARGS__)

Definition at line 2105 of file generic_macros_msa.h.

◆ SRARI_W4_SW

#define SRARI_W4_SW (   ...)    SRARI_W4(v4i32, __VA_ARGS__)

Definition at line 2106 of file generic_macros_msa.h.

◆ MUL2

#define MUL2 (   in0,
  in1,
  in2,
  in3,
  out0,
  out1 
)
Value:
{ \
out0 = in0 * in1; \
out1 = in2 * in3; \
}

Definition at line 2115 of file generic_macros_msa.h.

◆ MUL4

#define MUL4 (   in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
MUL2(in0, in1, in2, in3, out0, out1); \
MUL2(in4, in5, in6, in7, out2, out3); \
}

Definition at line 2120 of file generic_macros_msa.h.

◆ ADD2

#define ADD2 (   in0,
  in1,
  in2,
  in3,
  out0,
  out1 
)
Value:
{ \
out0 = in0 + in1; \
out1 = in2 + in3; \
}

Definition at line 2132 of file generic_macros_msa.h.

◆ ADD4

#define ADD4 (   in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
ADD2(in0, in1, in2, in3, out0, out1); \
ADD2(in4, in5, in6, in7, out2, out3); \
}

Definition at line 2137 of file generic_macros_msa.h.

◆ SUB2

#define SUB2 (   in0,
  in1,
  in2,
  in3,
  out0,
  out1 
)
Value:
{ \
out0 = in0 - in1; \
out1 = in2 - in3; \
}

Definition at line 2149 of file generic_macros_msa.h.

◆ SUB4

#define SUB4 (   in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
out0 = in0 - in1; \
out1 = in2 - in3; \
out2 = in4 - in5; \
out3 = in6 - in7; \
}

Definition at line 2154 of file generic_macros_msa.h.

◆ UNPCK_R_SB_SH

#define UNPCK_R_SB_SH (   in,
  out 
)
Value:
{ \
v16i8 sign_m; \
\
sign_m = __msa_clti_s_b((v16i8) in, 0); \
out = (v8i16) __msa_ilvr_b(sign_m, (v16i8) in); \
}

Definition at line 2170 of file generic_macros_msa.h.

◆ UNPCK_R_SH_SW

#define UNPCK_R_SH_SW (   in,
  out 
)
Value:
{ \
v8i16 sign_m; \
\
sign_m = __msa_clti_s_h((v8i16) in, 0); \
out = (v4i32) __msa_ilvr_h(sign_m, (v8i16) in); \
}

Definition at line 2192 of file generic_macros_msa.h.

◆ UNPCK_SB_SH

#define UNPCK_SB_SH (   in,
  out0,
  out1 
)
Value:
{ \
v16i8 tmp_m; \
\
tmp_m = __msa_clti_s_b((v16i8) in, 0); \
ILVRL_B2_SH(tmp_m, in, out0, out1); \
}

Definition at line 2219 of file generic_macros_msa.h.

◆ UNPCK_UB_SH

#define UNPCK_UB_SH (   in,
  out0,
  out1 
)
Value:
{ \
v16i8 zero_m = { 0 }; \
ILVRL_B2_SH(zero_m, in, out0, out1); \
}

Definition at line 2235 of file generic_macros_msa.h.

◆ UNPCK_SH_SW

#define UNPCK_SH_SW (   in,
  out0,
  out1 
)
Value:
{ \
v8i16 tmp_m; \
\
tmp_m = __msa_clti_s_h((v8i16) in, 0); \
ILVRL_H2_SW(tmp_m, in, out0, out1); \
}

Definition at line 2260 of file generic_macros_msa.h.

◆ SWAP

#define SWAP (   in0,
  in1 
)
Value:
{ \
in0 = in0 ^ in1; \
in1 = in0 ^ in1; \
in0 = in0 ^ in1; \
}

Definition at line 2274 of file generic_macros_msa.h.

◆ BUTTERFLY_4

#define BUTTERFLY_4 (   in0,
  in1,
  in2,
  in3,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
out0 = in0 + in3; \
out1 = in1 + in2; \
\
out2 = in1 - in2; \
out3 = in0 - in3; \
}

Definition at line 2286 of file generic_macros_msa.h.

◆ BUTTERFLY_8

#define BUTTERFLY_8 (   in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  out0,
  out1,
  out2,
  out3,
  out4,
  out5,
  out6,
  out7 
)
Value:
{ \
out0 = in0 + in7; \
out1 = in1 + in6; \
out2 = in2 + in5; \
out3 = in3 + in4; \
\
out4 = in3 - in4; \
out5 = in2 - in5; \
out6 = in1 - in6; \
out7 = in0 - in7; \
}

Definition at line 2300 of file generic_macros_msa.h.

◆ BUTTERFLY_16

#define BUTTERFLY_16 (   in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  in8,
  in9,
  in10,
  in11,
  in12,
  in13,
  in14,
  in15,
  out0,
  out1,
  out2,
  out3,
  out4,
  out5,
  out6,
  out7,
  out8,
  out9,
  out10,
  out11,
  out12,
  out13,
  out14,
  out15 
)
Value:
{ \
out0 = in0 + in15; \
out1 = in1 + in14; \
out2 = in2 + in13; \
out3 = in3 + in12; \
out4 = in4 + in11; \
out5 = in5 + in10; \
out6 = in6 + in9; \
out7 = in7 + in8; \
\
out8 = in7 - in8; \
out9 = in6 - in9; \
out10 = in5 - in10; \
out11 = in4 - in11; \
out12 = in3 - in12; \
out13 = in2 - in13; \
out14 = in1 - in14; \
out15 = in0 - in15; \
}

Definition at line 2319 of file generic_macros_msa.h.

◆ TRANSPOSE4x4_UB_UB

#define TRANSPOSE4x4_UB_UB (   in0,
  in1,
  in2,
  in3,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
v16i8 zero_m = { 0 }; \
v16i8 s0_m, s1_m, s2_m, s3_m; \
ILVR_D2_SB(in1, in0, in3, in2, s0_m, s1_m); \
ILVRL_B2_SB(s1_m, s0_m, s2_m, s3_m); \
\
out0 = (v16u8) __msa_ilvr_b(s3_m, s2_m); \
out1 = (v16u8) __msa_sldi_b(zero_m, (v16i8) out0, 4); \
out2 = (v16u8) __msa_sldi_b(zero_m, (v16i8) out1, 4); \
out3 = (v16u8) __msa_sldi_b(zero_m, (v16i8) out2, 4); \
}

Definition at line 2349 of file generic_macros_msa.h.

◆ TRANSPOSE8x4_UB

#define TRANSPOSE8x4_UB (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
v16i8 tmp0_m, tmp1_m, tmp2_m, tmp3_m; \
ILVEV_W2_SB(in0, in4, in1, in5, tmp0_m, tmp1_m); \
tmp2_m = __msa_ilvr_b(tmp1_m, tmp0_m); \
ILVEV_W2_SB(in2, in6, in3, in7, tmp0_m, tmp1_m); \
\
tmp3_m = __msa_ilvr_b(tmp1_m, tmp0_m); \
ILVRL_H2_SB(tmp3_m, tmp2_m, tmp0_m, tmp1_m); \
ILVRL_W2(RTYPE, tmp1_m, tmp0_m, out0, out2); \
out1 = (RTYPE) __msa_ilvl_d((v2i64) out2, (v2i64) out0); \
out3 = (RTYPE) __msa_ilvl_d((v2i64) out0, (v2i64) out2); \
}

Definition at line 2369 of file generic_macros_msa.h.

◆ TRANSPOSE8x4_UB_UB

#define TRANSPOSE8x4_UB_UB (   ...)    TRANSPOSE8x4_UB(v16u8, __VA_ARGS__)

Definition at line 2385 of file generic_macros_msa.h.

◆ TRANSPOSE8x4_UB_UH

#define TRANSPOSE8x4_UB_UH (   ...)    TRANSPOSE8x4_UB(v8u16, __VA_ARGS__)

Definition at line 2386 of file generic_macros_msa.h.

◆ TRANSPOSE8x8_UB

#define TRANSPOSE8x8_UB (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  out0,
  out1,
  out2,
  out3,
  out4,
  out5,
  out6,
  out7 
)
Value:
{ \
v16i8 tmp0_m, tmp1_m, tmp2_m, tmp3_m; \
v16i8 tmp4_m, tmp5_m, tmp6_m, tmp7_m; \
v16i8 zeros = { 0 }; \
ILVR_B4_SB(in2, in0, in3, in1, in6, in4, in7, in5, \
tmp0_m, tmp1_m, tmp2_m, tmp3_m); \
ILVRL_B2_SB(tmp1_m, tmp0_m, tmp4_m, tmp5_m); \
ILVRL_B2_SB(tmp3_m, tmp2_m, tmp6_m, tmp7_m); \
ILVRL_W2(RTYPE, tmp6_m, tmp4_m, out0, out2); \
ILVRL_W2(RTYPE, tmp7_m, tmp5_m, out4, out6); \
SLDI_B4(RTYPE, zeros, out0, zeros, out2, zeros, out4, zeros, out6, \
8, out1, out3, out5, out7); \
}

Definition at line 2396 of file generic_macros_msa.h.

◆ TRANSPOSE8x8_UB_UB

#define TRANSPOSE8x8_UB_UB (   ...)    TRANSPOSE8x8_UB(v16u8, __VA_ARGS__)

Definition at line 2412 of file generic_macros_msa.h.

◆ TRANSPOSE8x8_UB_UH

#define TRANSPOSE8x8_UB_UH (   ...)    TRANSPOSE8x8_UB(v8u16, __VA_ARGS__)

Definition at line 2413 of file generic_macros_msa.h.

◆ TRANSPOSE16x4_UB_UB

#define TRANSPOSE16x4_UB_UB (   in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  in8,
  in9,
  in10,
  in11,
  in12,
  in13,
  in14,
  in15,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
v2i64 tmp0_m, tmp1_m, tmp2_m, tmp3_m; \
ILVEV_W2_SD(in0, in4, in8, in12, tmp0_m, tmp1_m); \
out1 = (v16u8) __msa_ilvev_d(tmp1_m, tmp0_m); \
ILVEV_W2_SD(in1, in5, in9, in13, tmp0_m, tmp1_m); \
out3 = (v16u8) __msa_ilvev_d(tmp1_m, tmp0_m); \
ILVEV_W2_SD(in2, in6, in10, in14, tmp0_m, tmp1_m); \
\
tmp2_m = __msa_ilvev_d(tmp1_m, tmp0_m); \
ILVEV_W2_SD(in3, in7, in11, in15, tmp0_m, tmp1_m); \
\
tmp3_m = __msa_ilvev_d(tmp1_m, tmp0_m); \
ILVEV_B2_SD(out1, out3, tmp2_m, tmp3_m, tmp0_m, tmp1_m); \
out0 = (v16u8) __msa_ilvev_h((v8i16) tmp1_m, (v8i16) tmp0_m); \
out2 = (v16u8) __msa_ilvod_h((v8i16) tmp1_m, (v8i16) tmp0_m); \
\
tmp0_m = (v2i64) __msa_ilvod_b((v16i8) out3, (v16i8) out1); \
tmp1_m = (v2i64) __msa_ilvod_b((v16i8) tmp3_m, (v16i8) tmp2_m); \
out1 = (v16u8) __msa_ilvev_h((v8i16) tmp1_m, (v8i16) tmp0_m); \
out3 = (v16u8) __msa_ilvod_h((v8i16) tmp1_m, (v8i16) tmp0_m); \
}

Definition at line 2422 of file generic_macros_msa.h.

◆ TRANSPOSE16x8_UB_UB

#define TRANSPOSE16x8_UB_UB (   in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  in8,
  in9,
  in10,
  in11,
  in12,
  in13,
  in14,
  in15,
  out0,
  out1,
  out2,
  out3,
  out4,
  out5,
  out6,
  out7 
)

Definition at line 2457 of file generic_macros_msa.h.

◆ TRANSPOSE4x4_SH_SH

#define TRANSPOSE4x4_SH_SH (   in0,
  in1,
  in2,
  in3,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
v8i16 s0_m, s1_m; \
ILVR_H2_SH(in1, in0, in3, in2, s0_m, s1_m); \
ILVRL_W2_SH(s1_m, s0_m, out0, out2); \
out1 = (v8i16) __msa_ilvl_d((v2i64) out0, (v2i64) out0); \
out3 = (v8i16) __msa_ilvl_d((v2i64) out0, (v2i64) out2); \
}

Definition at line 2503 of file generic_macros_msa.h.

◆ TRANSPOSE8x8_H

#define TRANSPOSE8x8_H (   RTYPE,
  in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  out0,
  out1,
  out2,
  out3,
  out4,
  out5,
  out6,
  out7 
)
Value:
{ \
v8i16 s0_m, s1_m; \
v8i16 tmp0_m, tmp1_m, tmp2_m, tmp3_m; \
v8i16 tmp4_m, tmp5_m, tmp6_m, tmp7_m; \
ILVR_H2_SH(in6, in4, in7, in5, s0_m, s1_m); \
ILVRL_H2_SH(s1_m, s0_m, tmp0_m, tmp1_m); \
ILVL_H2_SH(in6, in4, in7, in5, s0_m, s1_m); \
ILVRL_H2_SH(s1_m, s0_m, tmp2_m, tmp3_m); \
ILVR_H2_SH(in2, in0, in3, in1, s0_m, s1_m); \
ILVRL_H2_SH(s1_m, s0_m, tmp4_m, tmp5_m); \
ILVL_H2_SH(in2, in0, in3, in1, s0_m, s1_m); \
ILVRL_H2_SH(s1_m, s0_m, tmp6_m, tmp7_m); \
PCKEV_D4(RTYPE, tmp0_m, tmp4_m, tmp1_m, tmp5_m, tmp2_m, tmp6_m, \
tmp3_m, tmp7_m, out0, out2, out4, out6); \
out1 = (RTYPE) __msa_pckod_d((v2i64) tmp0_m, (v2i64) tmp4_m); \
out3 = (RTYPE) __msa_pckod_d((v2i64) tmp1_m, (v2i64) tmp5_m); \
out5 = (RTYPE) __msa_pckod_d((v2i64) tmp2_m, (v2i64) tmp6_m); \
out7 = (RTYPE) __msa_pckod_d((v2i64) tmp3_m, (v2i64) tmp7_m); \
}

Definition at line 2519 of file generic_macros_msa.h.

◆ TRANSPOSE8x8_UH_UH

#define TRANSPOSE8x8_UH_UH (   ...)    TRANSPOSE8x8_H(v8u16, __VA_ARGS__)

Definition at line 2541 of file generic_macros_msa.h.

◆ TRANSPOSE8x8_SH_SH

#define TRANSPOSE8x8_SH_SH (   ...)    TRANSPOSE8x8_H(v8i16, __VA_ARGS__)

Definition at line 2542 of file generic_macros_msa.h.

◆ TRANSPOSE4x4_SW_SW

#define TRANSPOSE4x4_SW_SW (   in0,
  in1,
  in2,
  in3,
  out0,
  out1,
  out2,
  out3 
)
Value:
{ \
v4i32 s0_m, s1_m, s2_m, s3_m; \
ILVRL_W2_SW(in1, in0, s0_m, s1_m); \
ILVRL_W2_SW(in3, in2, s2_m, s3_m); \
\
out0 = (v4i32) __msa_ilvr_d((v2i64) s2_m, (v2i64) s0_m); \
out1 = (v4i32) __msa_ilvl_d((v2i64) s2_m, (v2i64) s0_m); \
out2 = (v4i32) __msa_ilvr_d((v2i64) s3_m, (v2i64) s1_m); \
out3 = (v4i32) __msa_ilvl_d((v2i64) s3_m, (v2i64) s1_m); \
}

Definition at line 2550 of file generic_macros_msa.h.

◆ AVE_ST8x4_UB

#define AVE_ST8x4_UB (   in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  pdst,
  stride 
)
Value:
{ \
uint64_t out0_m, out1_m, out2_m, out3_m; \
v16u8 tmp0_m, tmp1_m, tmp2_m, tmp3_m; \
\
tmp0_m = __msa_ave_u_b((v16u8) in0, (v16u8) in1); \
tmp1_m = __msa_ave_u_b((v16u8) in2, (v16u8) in3); \
tmp2_m = __msa_ave_u_b((v16u8) in4, (v16u8) in5); \
tmp3_m = __msa_ave_u_b((v16u8) in6, (v16u8) in7); \
\
out0_m = __msa_copy_u_d((v2i64) tmp0_m, 0); \
out1_m = __msa_copy_u_d((v2i64) tmp1_m, 0); \
out2_m = __msa_copy_u_d((v2i64) tmp2_m, 0); \
out3_m = __msa_copy_u_d((v2i64) tmp3_m, 0); \
SD4(out0_m, out1_m, out2_m, out3_m, pdst, stride); \
}

Definition at line 2577 of file generic_macros_msa.h.

◆ AVE_ST16x4_UB

#define AVE_ST16x4_UB (   in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  pdst,
  stride 
)
Value:
{ \
v16u8 tmp0_m, tmp1_m, tmp2_m, tmp3_m; \
\
tmp0_m = __msa_ave_u_b((v16u8) in0, (v16u8) in1); \
tmp1_m = __msa_ave_u_b((v16u8) in2, (v16u8) in3); \
tmp2_m = __msa_ave_u_b((v16u8) in4, (v16u8) in5); \
tmp3_m = __msa_ave_u_b((v16u8) in6, (v16u8) in7); \
ST_UB4(tmp0_m, tmp1_m, tmp2_m, tmp3_m, pdst, stride); \
}

Definition at line 2608 of file generic_macros_msa.h.

◆ AVER_ST8x4_UB

#define AVER_ST8x4_UB (   in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  pdst,
  stride 
)
Value:
{ \
uint64_t out0_m, out1_m, out2_m, out3_m; \
v16u8 tp0_m, tp1_m, tp2_m, tp3_m; \
AVER_UB4_UB(in0, in1, in2, in3, in4, in5, in6, in7, \
tp0_m, tp1_m, tp2_m, tp3_m); \
\
out0_m = __msa_copy_u_d((v2i64) tp0_m, 0); \
out1_m = __msa_copy_u_d((v2i64) tp1_m, 0); \
out2_m = __msa_copy_u_d((v2i64) tp2_m, 0); \
out3_m = __msa_copy_u_d((v2i64) tp3_m, 0); \
SD4(out0_m, out1_m, out2_m, out3_m, pdst, stride); \
}

Definition at line 2634 of file generic_macros_msa.h.

◆ AVER_ST16x4_UB

#define AVER_ST16x4_UB (   in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  pdst,
  stride 
)
Value:
{ \
v16u8 t0_m, t1_m, t2_m, t3_m; \
AVER_UB4_UB(in0, in1, in2, in3, in4, in5, in6, in7, \
t0_m, t1_m, t2_m, t3_m); \
ST_UB4(t0_m, t1_m, t2_m, t3_m, pdst, stride); \
}

Definition at line 2663 of file generic_macros_msa.h.

◆ AVER_DST_ST8x4_UB

#define AVER_DST_ST8x4_UB (   in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  pdst,
  stride 
)
Value:
{ \
v16u8 tmp0_m, tmp1_m, tmp2_m, tmp3_m; \
v16u8 dst0_m, dst1_m, dst2_m, dst3_m; \
LD_UB4(pdst, stride, dst0_m, dst1_m, dst2_m, dst3_m); \
AVER_UB4_UB(in0, in1, in2, in3, in4, in5, in6, in7, \
tmp0_m, tmp1_m, tmp2_m, tmp3_m); \
AVER_ST8x4_UB(dst0_m, tmp0_m, dst1_m, tmp1_m, \
dst2_m, tmp2_m, dst3_m, tmp3_m, pdst, stride); \
}

Definition at line 2687 of file generic_macros_msa.h.

◆ AVER_DST_ST16x4_UB

#define AVER_DST_ST16x4_UB (   in0,
  in1,
  in2,
  in3,
  in4,
  in5,
  in6,
  in7,
  pdst,
  stride 
)
Value:
{ \
v16u8 tmp0_m, tmp1_m, tmp2_m, tmp3_m; \
v16u8 dst0_m, dst1_m, dst2_m, dst3_m; \
LD_UB4(pdst, stride, dst0_m, dst1_m, dst2_m, dst3_m); \
AVER_UB4_UB(in0, in1, in2, in3, in4, in5, in6, in7, \
tmp0_m, tmp1_m, tmp2_m, tmp3_m); \
AVER_ST16x4_UB(dst0_m, tmp0_m, dst1_m, tmp1_m, \
dst2_m, tmp2_m, dst3_m, tmp3_m, pdst, stride); \
}

Definition at line 2715 of file generic_macros_msa.h.

◆ ADDBLK_ST4x4_UB

#define ADDBLK_ST4x4_UB (   in0,
  in1,
  in2,
  in3,
  pdst,
  stride 
)
Value:
{ \
uint32_t src0_m, src1_m, src2_m, src3_m; \
uint32_t out0_m, out1_m, out2_m, out3_m; \
v8i16 inp0_m, inp1_m, res0_m, res1_m; \
v16i8 dst0_m = { 0 }; \
v16i8 dst1_m = { 0 }; \
v16i8 zero_m = { 0 }; \
ILVR_D2_SH(in1, in0, in3, in2, inp0_m, inp1_m) \
LW4(pdst, stride, src0_m, src1_m, src2_m, src3_m); \
INSERT_W2_SB(src0_m, src1_m, dst0_m); \
INSERT_W2_SB(src2_m, src3_m, dst1_m); \
ILVR_B2_SH(zero_m, dst0_m, zero_m, dst1_m, res0_m, res1_m); \
ADD2(res0_m, inp0_m, res1_m, inp1_m, res0_m, res1_m); \
CLIP_SH2_0_255(res0_m, res1_m); \
PCKEV_B2_SB(res0_m, res0_m, res1_m, res1_m, dst0_m, dst1_m); \
\
out0_m = __msa_copy_u_w((v4i32) dst0_m, 0); \
out1_m = __msa_copy_u_w((v4i32) dst0_m, 1); \
out2_m = __msa_copy_u_w((v4i32) dst1_m, 0); \
out3_m = __msa_copy_u_w((v4i32) dst1_m, 1); \
SW4(out0_m, out1_m, out2_m, out3_m, pdst, stride); \
}

Definition at line 2733 of file generic_macros_msa.h.

◆ DPADD_SH3_SH

#define DPADD_SH3_SH (   in0,
  in1,
  in2,
  coeff0,
  coeff1,
  coeff2 
)
Value:
( { \
v8i16 out0_m; \
\
out0_m = __msa_dotp_s_h((v16i8) in0, (v16i8) coeff0); \
out0_m = __msa_dpadd_s_h(out0_m, (v16i8) in1, (v16i8) coeff1); \
out0_m = __msa_dpadd_s_h(out0_m, (v16i8) in2, (v16i8) coeff2); \
\
out0_m; \
} )

Definition at line 2769 of file generic_macros_msa.h.

◆ PCKEV_XORI128_UB

#define PCKEV_XORI128_UB (   in0,
  in1 
)
Value:
( { \
v16u8 out_m; \
out_m = (v16u8) __msa_pckev_b((v16i8) in1, (v16i8) in0); \
out_m = (v16u8) __msa_xori_b((v16u8) out_m, 128); \
out_m; \
} )

Definition at line 2788 of file generic_macros_msa.h.

◆ CONVERT_UB_AVG_ST8x4_UB

#define CONVERT_UB_AVG_ST8x4_UB (   in0,
  in1,
  in2,
  in3,
  dst0,
  dst1,
  pdst,
  stride 
)
Value:
{ \
v16u8 tmp0_m, tmp1_m; \
uint8_t *pdst_m = (uint8_t *) (pdst); \
\
tmp0_m = PCKEV_XORI128_UB(in0, in1); \
tmp1_m = PCKEV_XORI128_UB(in2, in3); \
AVER_UB2_UB(tmp0_m, dst0, tmp1_m, dst1, tmp0_m, tmp1_m); \
ST_D4(tmp0_m, tmp1_m, 0, 1, 0, 1, pdst_m, stride); \
}

Definition at line 2800 of file generic_macros_msa.h.

◆ PCKEV_ST4x4_UB

#define PCKEV_ST4x4_UB (   in0,
  in1,
  in2,
  in3,
  pdst,
  stride 
)
Value:
{ \
uint32_t out0_m, out1_m, out2_m, out3_m; \
v16i8 tmp0_m, tmp1_m; \
PCKEV_B2_SB(in1, in0, in3, in2, tmp0_m, tmp1_m); \
\
out0_m = __msa_copy_u_w((v4i32) tmp0_m, 0); \
out1_m = __msa_copy_u_w((v4i32) tmp0_m, 2); \
out2_m = __msa_copy_u_w((v4i32) tmp1_m, 0); \
out3_m = __msa_copy_u_w((v4i32) tmp1_m, 2); \
SW4(out0_m, out1_m, out2_m, out3_m, pdst, stride); \
}

Definition at line 2817 of file generic_macros_msa.h.

◆ PCKEV_ST_SB

#define PCKEV_ST_SB (   in0,
  in1,
  pdst 
)
Value:
{ \
v16i8 tmp_m; \
tmp_m = __msa_pckev_b((v16i8) in1, (v16i8) in0); \
ST_SB(tmp_m, (pdst)); \
}

Definition at line 2836 of file generic_macros_msa.h.

◆ HORIZ_2TAP_FILT_UH

#define HORIZ_2TAP_FILT_UH (   in0,
  in1,
  mask,
  coeff,
  shift 
)
Value:
( { \
v16i8 tmp0_m; \
v8u16 tmp1_m; \
\
tmp0_m = __msa_vshf_b((v16i8) mask, (v16i8) in1, (v16i8) in0); \
tmp1_m = __msa_dotp_u_h((v16u8) tmp0_m, (v16u8) coeff); \
tmp1_m = (v8u16) __msa_srari_h((v8i16) tmp1_m, shift); \
tmp1_m = __msa_sat_u_h(tmp1_m, shift); \
\
tmp1_m; \
} )

Definition at line 2846 of file generic_macros_msa.h.

stride
int stride
Definition: mace.c:144
ILVR_H2_SH
#define ILVR_H2_SH(...)
Definition: generic_macros_msa.h:1406
out
FILE * out
Definition: movenc.c:54
ILVRL_W2_SW
#define ILVRL_W2_SW(...)
Definition: generic_macros_msa.h:1532
max
#define max(a, b)
Definition: cuda_runtime.h:33
AVER_UB4_UB
#define AVER_UB4_UB(...)
Definition: generic_macros_msa.h:607
ST_UB4
#define ST_UB4(...)
Definition: generic_macros_msa.h:378
ILVRL_W2
#define ILVRL_W2(RTYPE, in0, in1, out0, out1)
Definition: generic_macros_msa.h:1525
ILVEV_W2_SB
#define ILVEV_W2_SB(...)
Definition: generic_macros_msa.h:1240
s3
#define s3
Definition: regdef.h:40
val
static double val(void *priv, double ch)
Definition: aeval.c:76
SW
#define SW(val, pdst)
Definition: generic_macros_msa.h:171
mask
static const uint16_t mask[17]
Definition: lzw.c:38
s
#define s(width, name)
Definition: cbs_vp9.c:257
s1
#define s1
Definition: regdef.h:38
ILVR_B4_SB
#define ILVR_B4_SB(...)
Definition: generic_macros_msa.h:1374
ILVR_D2_SB
#define ILVR_D2_SB(...)
Definition: generic_macros_msa.h:1458
ILVEV_W2_SD
#define ILVEV_W2_SD(...)
Definition: generic_macros_msa.h:1242
LW
#define LW(psrc)
Definition: generic_macros_msa.h:108
s2
#define s2
Definition: regdef.h:39
PCKEV_XORI128_UB
#define PCKEV_XORI128_UB(in0, in1)
Definition: generic_macros_msa.h:2788
LD_UB4
#define LD_UB4(...)
Definition: generic_macros_msa.h:300
SW4
#define SW4(in0, in1, in2, in3, pdst, stride)
Definition: generic_macros_msa.h:245
LD_V
#define LD_V(RTYPE, psrc)
Definition: generic_macros_msa.h:35
in
uint8_t pi<< 24) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_U8, uint8_t,(*(const uint8_t *) pi - 0x80) *(1.0f/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_U8, uint8_t,(*(const uint8_t *) pi - 0x80) *(1.0/(1<< 7))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S16, int16_t,(*(const int16_t *) pi >> 8)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S16, int16_t, *(const int16_t *) pi *(1.0f/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S16, int16_t, *(const int16_t *) pi *(1.0/(1<< 15))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_S32, int32_t,(*(const int32_t *) pi >> 24)+0x80) CONV_FUNC_GROUP(AV_SAMPLE_FMT_FLT, float, AV_SAMPLE_FMT_S32, int32_t, *(const int32_t *) pi *(1.0f/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_DBL, double, AV_SAMPLE_FMT_S32, int32_t, *(const int32_t *) pi *(1.0/(1U<< 31))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_FLT, float, av_clip_uint8(lrintf(*(const float *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_FLT, float, av_clip_int16(lrintf(*(const float *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_FLT, float, av_clipl_int32(llrintf(*(const float *) pi *(1U<< 31)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_U8, uint8_t, AV_SAMPLE_FMT_DBL, double, av_clip_uint8(lrint(*(const double *) pi *(1<< 7))+0x80)) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S16, int16_t, AV_SAMPLE_FMT_DBL, double, av_clip_int16(lrint(*(const double *) pi *(1<< 15)))) CONV_FUNC_GROUP(AV_SAMPLE_FMT_S32, int32_t, AV_SAMPLE_FMT_DBL, double, av_clipl_int32(llrint(*(const double *) pi *(1U<< 31)))) #define SET_CONV_FUNC_GROUP(ofmt, ifmt) static void set_generic_function(AudioConvert *ac) { } void ff_audio_convert_free(AudioConvert **ac) { if(! *ac) return;ff_dither_free(&(*ac) ->dc);av_freep(ac);} AudioConvert *ff_audio_convert_alloc(AVAudioResampleContext *avr, enum AVSampleFormat out_fmt, enum AVSampleFormat in_fmt, int channels, int sample_rate, int apply_map) { AudioConvert *ac;int in_planar, out_planar;ac=av_mallocz(sizeof(*ac));if(!ac) return NULL;ac->avr=avr;ac->out_fmt=out_fmt;ac->in_fmt=in_fmt;ac->channels=channels;ac->apply_map=apply_map;if(avr->dither_method !=AV_RESAMPLE_DITHER_NONE &&av_get_packed_sample_fmt(out_fmt)==AV_SAMPLE_FMT_S16 &&av_get_bytes_per_sample(in_fmt) > 2) { ac->dc=ff_dither_alloc(avr, out_fmt, in_fmt, channels, sample_rate, apply_map);if(!ac->dc) { av_free(ac);return NULL;} return ac;} in_planar=ff_sample_fmt_is_planar(in_fmt, channels);out_planar=ff_sample_fmt_is_planar(out_fmt, channels);if(in_planar==out_planar) { ac->func_type=CONV_FUNC_TYPE_FLAT;ac->planes=in_planar ? ac->channels :1;} else if(in_planar) ac->func_type=CONV_FUNC_TYPE_INTERLEAVE;else ac->func_type=CONV_FUNC_TYPE_DEINTERLEAVE;set_generic_function(ac);if(ARCH_AARCH64) ff_audio_convert_init_aarch64(ac);if(ARCH_ARM) ff_audio_convert_init_arm(ac);if(ARCH_X86) ff_audio_convert_init_x86(ac);return ac;} int ff_audio_convert(AudioConvert *ac, AudioData *out, AudioData *in) { int use_generic=1;int len=in->nb_samples;int p;if(ac->dc) { av_log(ac->avr, AV_LOG_TRACE, "%d samples - audio_convert: %s to %s (dithered)\n", len, av_get_sample_fmt_name(ac->in_fmt), av_get_sample_fmt_name(ac->out_fmt));return ff_convert_dither(ac-> in
Definition: audio_convert.c:326
uint8_t
uint8_t
Definition: audio_convert.c:194
ILVR_D2_SH
#define ILVR_D2_SH(...)
Definition: generic_macros_msa.h:1459
shift
static int shift(int a, int b)
Definition: sonic.c:82
s0
#define s0
Definition: regdef.h:37
ILVRL_B2_SH
#define ILVRL_B2_SH(...)
Definition: generic_macros_msa.h:1512
PCKEV_B2_SB
#define PCKEV_B2_SB(...)
Definition: generic_macros_msa.h:1733
coeff
static const double coeff[2][5]
Definition: vf_owdenoise.c:73
LD
#define LD(psrc)
Definition: generic_macros_msa.h:141
min
float min
Definition: vorbis_enc_data.h:456