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 28 of file generic_macros_msa.h.

◆ ALLOC_ALIGNED

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

Definition at line 29 of file generic_macros_msa.h.

◆ LD_V

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

Definition at line 31 of file generic_macros_msa.h.

◆ LD_UB

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

Definition at line 32 of file generic_macros_msa.h.

◆ LD_SB

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

Definition at line 33 of file generic_macros_msa.h.

◆ LD_UH

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

Definition at line 34 of file generic_macros_msa.h.

◆ LD_SH

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

Definition at line 35 of file generic_macros_msa.h.

◆ LD_UW

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

Definition at line 36 of file generic_macros_msa.h.

◆ LD_SW

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

Definition at line 37 of file generic_macros_msa.h.

◆ ST_V

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

Definition at line 39 of file generic_macros_msa.h.

◆ ST_UB

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

Definition at line 40 of file generic_macros_msa.h.

◆ ST_SB

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

Definition at line 41 of file generic_macros_msa.h.

◆ ST_UH

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

Definition at line 42 of file generic_macros_msa.h.

◆ ST_SH

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

Definition at line 43 of file generic_macros_msa.h.

◆ ST_UW

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

Definition at line 44 of file generic_macros_msa.h.

◆ ST_SW

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

Definition at line 45 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 89 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 104 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 137 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 154 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 167 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 180 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 202 of file generic_macros_msa.h.

◆ LW2

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

Definition at line 210 of file generic_macros_msa.h.

◆ LD2

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

Definition at line 223 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 228 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 241 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 256 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 272 of file generic_macros_msa.h.

◆ LD_UB2

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

Definition at line 277 of file generic_macros_msa.h.

◆ LD_SB2

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

Definition at line 278 of file generic_macros_msa.h.

◆ LD_UH2

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

Definition at line 279 of file generic_macros_msa.h.

◆ LD_SH2

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

Definition at line 280 of file generic_macros_msa.h.

◆ LD_SW2

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

Definition at line 281 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 283 of file generic_macros_msa.h.

◆ LD_UB3

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

Definition at line 288 of file generic_macros_msa.h.

◆ LD_SB3

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

Definition at line 289 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 291 of file generic_macros_msa.h.

◆ LD_UB4

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

Definition at line 296 of file generic_macros_msa.h.

◆ LD_SB4

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

Definition at line 297 of file generic_macros_msa.h.

◆ LD_UH4

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

Definition at line 298 of file generic_macros_msa.h.

◆ LD_SH4

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

Definition at line 299 of file generic_macros_msa.h.

◆ LD_SW4

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

Definition at line 300 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 302 of file generic_macros_msa.h.

◆ LD_UB5

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

Definition at line 307 of file generic_macros_msa.h.

◆ LD_SB5

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

Definition at line 308 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 310 of file generic_macros_msa.h.

◆ LD_UB6

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

Definition at line 315 of file generic_macros_msa.h.

◆ LD_SB6

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

Definition at line 316 of file generic_macros_msa.h.

◆ LD_UH6

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

Definition at line 317 of file generic_macros_msa.h.

◆ LD_SH6

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

Definition at line 318 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 320 of file generic_macros_msa.h.

◆ LD_UB7

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

Definition at line 326 of file generic_macros_msa.h.

◆ LD_SB7

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

Definition at line 327 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 329 of file generic_macros_msa.h.

◆ LD_UB8

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

Definition at line 335 of file generic_macros_msa.h.

◆ LD_SB8

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

Definition at line 336 of file generic_macros_msa.h.

◆ LD_UH8

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

Definition at line 337 of file generic_macros_msa.h.

◆ LD_SH8

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

Definition at line 338 of file generic_macros_msa.h.

◆ LD_SW8

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

Definition at line 339 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 341 of file generic_macros_msa.h.

◆ LD_SH16

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

Definition at line 350 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 358 of file generic_macros_msa.h.

◆ ST_UB2

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

Definition at line 363 of file generic_macros_msa.h.

◆ ST_SB2

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

Definition at line 364 of file generic_macros_msa.h.

◆ ST_UH2

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

Definition at line 365 of file generic_macros_msa.h.

◆ ST_SH2

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

Definition at line 366 of file generic_macros_msa.h.

◆ ST_SW2

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

Definition at line 367 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 369 of file generic_macros_msa.h.

◆ ST_UB4

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

Definition at line 374 of file generic_macros_msa.h.

◆ ST_SB4

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

Definition at line 375 of file generic_macros_msa.h.

◆ ST_SH4

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

Definition at line 376 of file generic_macros_msa.h.

◆ ST_SW4

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

Definition at line 377 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 379 of file generic_macros_msa.h.

◆ ST_SH6

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

Definition at line 384 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 386 of file generic_macros_msa.h.

◆ ST_UB8

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

Definition at line 391 of file generic_macros_msa.h.

◆ ST_SH8

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

Definition at line 392 of file generic_macros_msa.h.

◆ ST_SW8

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

Definition at line 393 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 403 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 409 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 417 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 429 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 444 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 450 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 458 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 470 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 485 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 491 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 499 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 511 of file generic_macros_msa.h.

◆ ST12x8_UB

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

Definition at line 527 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 590 of file generic_macros_msa.h.

◆ AVER_UB2_UB

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

Definition at line 595 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 597 of file generic_macros_msa.h.

◆ AVER_UB4_UB

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

Definition at line 603 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 612 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 617 of file generic_macros_msa.h.

◆ SLDI_B2_UB

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

Definition at line 622 of file generic_macros_msa.h.

◆ SLDI_B2_SB

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

Definition at line 623 of file generic_macros_msa.h.

◆ SLDI_B2_SH

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

Definition at line 624 of file generic_macros_msa.h.

◆ SLDI_B2_SW

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

Definition at line 625 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 627 of file generic_macros_msa.h.

◆ SLDI_B3_UB

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

Definition at line 633 of file generic_macros_msa.h.

◆ SLDI_B3_SB

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

Definition at line 634 of file generic_macros_msa.h.

◆ SLDI_B3_UH

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

Definition at line 635 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 637 of file generic_macros_msa.h.

◆ SLDI_B4_UB

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

Definition at line 643 of file generic_macros_msa.h.

◆ SLDI_B4_SB

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

Definition at line 644 of file generic_macros_msa.h.

◆ SLDI_B4_SH

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

Definition at line 645 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 656 of file generic_macros_msa.h.

◆ VSHF_B2_UB

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

Definition at line 661 of file generic_macros_msa.h.

◆ VSHF_B2_SB

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

Definition at line 662 of file generic_macros_msa.h.

◆ VSHF_B2_UH

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

Definition at line 663 of file generic_macros_msa.h.

◆ VSHF_B2_SH

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

Definition at line 664 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 666 of file generic_macros_msa.h.

◆ VSHF_B3_SB

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

Definition at line 672 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 674 of file generic_macros_msa.h.

◆ VSHF_B4_SB

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

Definition at line 680 of file generic_macros_msa.h.

◆ VSHF_B4_SH

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

Definition at line 681 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 692 of file generic_macros_msa.h.

◆ VSHF_H2_SH

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

Definition at line 697 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 699 of file generic_macros_msa.h.

◆ VSHF_H3_SH

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

Definition at line 705 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 716 of file generic_macros_msa.h.

◆ VSHF_W2_SB

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

Definition at line 721 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 735 of file generic_macros_msa.h.

◆ DOTP_UB2_UH

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

Definition at line 740 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 742 of file generic_macros_msa.h.

◆ DOTP_UB4_UH

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

Definition at line 749 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 763 of file generic_macros_msa.h.

◆ DOTP_SB2_SH

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

Definition at line 768 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 770 of file generic_macros_msa.h.

◆ DOTP_SB3_SH

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

Definition at line 776 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 778 of file generic_macros_msa.h.

◆ DOTP_SB4_SH

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

Definition at line 784 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 798 of file generic_macros_msa.h.

◆ DOTP_SH2_SW

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

Definition at line 803 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 805 of file generic_macros_msa.h.

◆ DOTP_SH4_SW

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

Definition at line 812 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 826 of file generic_macros_msa.h.

◆ DPADD_SB2_SH

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

Definition at line 833 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 835 of file generic_macros_msa.h.

◆ DPADD_SB4_SH

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

Definition at line 841 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 855 of file generic_macros_msa.h.

◆ DPADD_UB2_UH

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

Definition at line 862 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 876 of file generic_macros_msa.h.

◆ DPADD_SH2_SW

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

Definition at line 883 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 885 of file generic_macros_msa.h.

◆ DPADD_SH4_SW

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

Definition at line 891 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 901 of file generic_macros_msa.h.

◆ MIN_UH2_UH

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

Definition at line 906 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 908 of file generic_macros_msa.h.

◆ MIN_UH4_UH

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

Definition at line 913 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 923 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 935 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 941 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 947 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 953 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 966 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 972 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 978 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 984 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 998 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 1017 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 1039 of file generic_macros_msa.h.

◆ HADD_SB2_SH

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

Definition at line 1044 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 1046 of file generic_macros_msa.h.

◆ HADD_SB4_UH

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

Definition at line 1051 of file generic_macros_msa.h.

◆ HADD_SB4_SH

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

Definition at line 1052 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 1062 of file generic_macros_msa.h.

◆ HADD_UB2_UH

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

Definition at line 1067 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 1069 of file generic_macros_msa.h.

◆ HADD_UB3_UH

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

Definition at line 1074 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 1076 of file generic_macros_msa.h.

◆ HADD_UB4_UB

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

Definition at line 1081 of file generic_macros_msa.h.

◆ HADD_UB4_UH

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

Definition at line 1082 of file generic_macros_msa.h.

◆ HADD_UB4_SH

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

Definition at line 1083 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 1093 of file generic_macros_msa.h.

◆ HSUB_UB2_UH

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

Definition at line 1098 of file generic_macros_msa.h.

◆ HSUB_UB2_SH

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

Definition at line 1099 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 1101 of file generic_macros_msa.h.

◆ HSUB_UB4_UH

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

Definition at line 1106 of file generic_macros_msa.h.

◆ HSUB_UB4_SH

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

Definition at line 1107 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 1118 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 1138 of file generic_macros_msa.h.

◆ INSERT_W2_UB

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

Definition at line 1143 of file generic_macros_msa.h.

◆ INSERT_W2_SB

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

Definition at line 1144 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 1146 of file generic_macros_msa.h.

◆ INSERT_W4_UB

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

Definition at line 1153 of file generic_macros_msa.h.

◆ INSERT_W4_SB

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

Definition at line 1154 of file generic_macros_msa.h.

◆ INSERT_W4_SH

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

Definition at line 1155 of file generic_macros_msa.h.

◆ INSERT_W4_SW

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

Definition at line 1156 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 1164 of file generic_macros_msa.h.

◆ INSERT_D2_UB

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

Definition at line 1169 of file generic_macros_msa.h.

◆ INSERT_D2_SB

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

Definition at line 1170 of file generic_macros_msa.h.

◆ INSERT_D2_SH

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

Definition at line 1171 of file generic_macros_msa.h.

◆ INSERT_D2_SD

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

Definition at line 1172 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 1183 of file generic_macros_msa.h.

◆ ILVEV_B2_UB

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

Definition at line 1188 of file generic_macros_msa.h.

◆ ILVEV_B2_SB

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

Definition at line 1189 of file generic_macros_msa.h.

◆ ILVEV_B2_SH

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

Definition at line 1190 of file generic_macros_msa.h.

◆ ILVEV_B2_SD

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

Definition at line 1191 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 1202 of file generic_macros_msa.h.

◆ ILVEV_H2_UB

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

Definition at line 1207 of file generic_macros_msa.h.

◆ ILVEV_H2_SH

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

Definition at line 1208 of file generic_macros_msa.h.

◆ ILVEV_H2_SW

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

Definition at line 1209 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 1220 of file generic_macros_msa.h.

◆ ILVEV_W2_UB

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

Definition at line 1225 of file generic_macros_msa.h.

◆ ILVEV_W2_SB

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

Definition at line 1226 of file generic_macros_msa.h.

◆ ILVEV_W2_UH

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

Definition at line 1227 of file generic_macros_msa.h.

◆ ILVEV_W2_SD

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

Definition at line 1228 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 1239 of file generic_macros_msa.h.

◆ ILVEV_D2_UB

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

Definition at line 1244 of file generic_macros_msa.h.

◆ ILVEV_D2_SB

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

Definition at line 1245 of file generic_macros_msa.h.

◆ ILVEV_D2_SW

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

Definition at line 1246 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 1257 of file generic_macros_msa.h.

◆ ILVL_B2_UB

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

Definition at line 1262 of file generic_macros_msa.h.

◆ ILVL_B2_SB

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

Definition at line 1263 of file generic_macros_msa.h.

◆ ILVL_B2_UH

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

Definition at line 1264 of file generic_macros_msa.h.

◆ ILVL_B2_SH

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

Definition at line 1265 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 1267 of file generic_macros_msa.h.

◆ ILVL_B4_UB

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

Definition at line 1273 of file generic_macros_msa.h.

◆ ILVL_B4_SB

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

Definition at line 1274 of file generic_macros_msa.h.

◆ ILVL_B4_UH

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

Definition at line 1275 of file generic_macros_msa.h.

◆ ILVL_B4_SH

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

Definition at line 1276 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 1287 of file generic_macros_msa.h.

◆ ILVL_H2_SH

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

Definition at line 1292 of file generic_macros_msa.h.

◆ ILVL_H2_SW

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

Definition at line 1293 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 1295 of file generic_macros_msa.h.

◆ ILVL_H4_SH

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

Definition at line 1301 of file generic_macros_msa.h.

◆ ILVL_H4_SW

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

Definition at line 1302 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 1313 of file generic_macros_msa.h.

◆ ILVL_W2_UB

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

Definition at line 1318 of file generic_macros_msa.h.

◆ ILVL_W2_SB

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

Definition at line 1319 of file generic_macros_msa.h.

◆ ILVL_W2_SH

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

Definition at line 1320 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 1332 of file generic_macros_msa.h.

◆ ILVR_B2_UB

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

Definition at line 1337 of file generic_macros_msa.h.

◆ ILVR_B2_SB

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

Definition at line 1338 of file generic_macros_msa.h.

◆ ILVR_B2_UH

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

Definition at line 1339 of file generic_macros_msa.h.

◆ ILVR_B2_SH

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

Definition at line 1340 of file generic_macros_msa.h.

◆ ILVR_B2_SW

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

Definition at line 1341 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 1343 of file generic_macros_msa.h.

◆ ILVR_B3_UB

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

Definition at line 1348 of file generic_macros_msa.h.

◆ ILVR_B3_SB

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

Definition at line 1349 of file generic_macros_msa.h.

◆ ILVR_B3_UH

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

Definition at line 1350 of file generic_macros_msa.h.

◆ ILVR_B3_SH

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

Definition at line 1351 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 1353 of file generic_macros_msa.h.

◆ ILVR_B4_UB

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

Definition at line 1359 of file generic_macros_msa.h.

◆ ILVR_B4_SB

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

Definition at line 1360 of file generic_macros_msa.h.

◆ ILVR_B4_UH

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

Definition at line 1361 of file generic_macros_msa.h.

◆ ILVR_B4_SH

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

Definition at line 1362 of file generic_macros_msa.h.

◆ ILVR_B4_SW

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

Definition at line 1363 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 1365 of file generic_macros_msa.h.

◆ ILVR_B8_UH

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

Definition at line 1374 of file generic_macros_msa.h.

◆ ILVR_B8_SW

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

Definition at line 1375 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 1387 of file generic_macros_msa.h.

◆ ILVR_H2_SH

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

Definition at line 1392 of file generic_macros_msa.h.

◆ ILVR_H2_SW

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

Definition at line 1393 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 1395 of file generic_macros_msa.h.

◆ ILVR_H3_SH

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

Definition at line 1400 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 1402 of file generic_macros_msa.h.

◆ ILVR_H4_SH

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

Definition at line 1408 of file generic_macros_msa.h.

◆ ILVR_H4_SW

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

Definition at line 1409 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 1411 of file generic_macros_msa.h.

◆ ILVR_W2_UB

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

Definition at line 1416 of file generic_macros_msa.h.

◆ ILVR_W2_SB

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

Definition at line 1417 of file generic_macros_msa.h.

◆ ILVR_W2_SH

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

Definition at line 1418 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 1420 of file generic_macros_msa.h.

◆ ILVR_W4_SB

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

Definition at line 1426 of file generic_macros_msa.h.

◆ ILVR_W4_UB

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

Definition at line 1427 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 1438 of file generic_macros_msa.h.

◆ ILVR_D2_UB

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

Definition at line 1443 of file generic_macros_msa.h.

◆ ILVR_D2_SB

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

Definition at line 1444 of file generic_macros_msa.h.

◆ ILVR_D2_SH

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

Definition at line 1445 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 1447 of file generic_macros_msa.h.

◆ ILVR_D3_SB

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

Definition at line 1452 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 1454 of file generic_macros_msa.h.

◆ ILVR_D4_SB

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

Definition at line 1460 of file generic_macros_msa.h.

◆ ILVR_D4_UB

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

Definition at line 1461 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 1472 of file generic_macros_msa.h.

◆ ILVL_D2_UB

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

Definition at line 1477 of file generic_macros_msa.h.

◆ ILVL_D2_SB

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

Definition at line 1478 of file generic_macros_msa.h.

◆ ILVL_D2_SH

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

Definition at line 1479 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 1490 of file generic_macros_msa.h.

◆ ILVRL_B2_UB

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

Definition at line 1495 of file generic_macros_msa.h.

◆ ILVRL_B2_SB

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

Definition at line 1496 of file generic_macros_msa.h.

◆ ILVRL_B2_UH

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

Definition at line 1497 of file generic_macros_msa.h.

◆ ILVRL_B2_SH

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

Definition at line 1498 of file generic_macros_msa.h.

◆ ILVRL_B2_SW

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

Definition at line 1499 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 1501 of file generic_macros_msa.h.

◆ ILVRL_H2_UB

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

Definition at line 1506 of file generic_macros_msa.h.

◆ ILVRL_H2_SB

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

Definition at line 1507 of file generic_macros_msa.h.

◆ ILVRL_H2_SH

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

Definition at line 1508 of file generic_macros_msa.h.

◆ ILVRL_H2_SW

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

Definition at line 1509 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 1511 of file generic_macros_msa.h.

◆ ILVRL_W2_UB

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

Definition at line 1516 of file generic_macros_msa.h.

◆ ILVRL_W2_SH

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

Definition at line 1517 of file generic_macros_msa.h.

◆ ILVRL_W2_SW

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

Definition at line 1518 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 1528 of file generic_macros_msa.h.

◆ MAXI_SH2_UH

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

Definition at line 1533 of file generic_macros_msa.h.

◆ MAXI_SH2_SH

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

Definition at line 1534 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 1536 of file generic_macros_msa.h.

◆ MAXI_SH4_UH

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

Definition at line 1541 of file generic_macros_msa.h.

◆ MAXI_SH4_SH

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

Definition at line 1542 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 1544 of file generic_macros_msa.h.

◆ MAXI_SH8_UH

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

Definition at line 1549 of file generic_macros_msa.h.

◆ MAXI_SH8_SH

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

Definition at line 1550 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 1562 of file generic_macros_msa.h.

◆ SAT_UH2_UH

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

Definition at line 1567 of file generic_macros_msa.h.

◆ SAT_UH2_SH

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

Definition at line 1568 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 1570 of file generic_macros_msa.h.

◆ SAT_UH4_UH

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

Definition at line 1575 of file generic_macros_msa.h.

◆ SAT_UH4_SH

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

Definition at line 1576 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 1578 of file generic_macros_msa.h.

◆ SAT_UH8_UH

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

Definition at line 1583 of file generic_macros_msa.h.

◆ SAT_UH8_SH

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

Definition at line 1584 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 1596 of file generic_macros_msa.h.

◆ SAT_SH2_SH

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

Definition at line 1601 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 1603 of file generic_macros_msa.h.

◆ SAT_SH3_SH

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

Definition at line 1608 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 1610 of file generic_macros_msa.h.

◆ SAT_SH4_SH

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

Definition at line 1615 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 1627 of file generic_macros_msa.h.

◆ SAT_SW2_SW

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

Definition at line 1632 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 1634 of file generic_macros_msa.h.

◆ SAT_SW4_SW

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

Definition at line 1639 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 1650 of file generic_macros_msa.h.

◆ SPLATI_H2_SB

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

Definition at line 1655 of file generic_macros_msa.h.

◆ SPLATI_H2_SH

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

Definition at line 1656 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 1658 of file generic_macros_msa.h.

◆ SPLATI_H3_SB

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

Definition at line 1664 of file generic_macros_msa.h.

◆ SPLATI_H3_SH

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

Definition at line 1665 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 1667 of file generic_macros_msa.h.

◆ SPLATI_H4_SB

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

Definition at line 1673 of file generic_macros_msa.h.

◆ SPLATI_H4_SH

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

Definition at line 1674 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 1687 of file generic_macros_msa.h.

◆ SPLATI_W2_SH

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

Definition at line 1692 of file generic_macros_msa.h.

◆ SPLATI_W2_SW

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

Definition at line 1693 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 1695 of file generic_macros_msa.h.

◆ SPLATI_W4_SH

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

Definition at line 1700 of file generic_macros_msa.h.

◆ SPLATI_W4_SW

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

Definition at line 1701 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 1714 of file generic_macros_msa.h.

◆ PCKEV_B2_SB

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

Definition at line 1719 of file generic_macros_msa.h.

◆ PCKEV_B2_UB

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

Definition at line 1720 of file generic_macros_msa.h.

◆ PCKEV_B2_SH

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

Definition at line 1721 of file generic_macros_msa.h.

◆ PCKEV_B2_SW

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

Definition at line 1722 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 1724 of file generic_macros_msa.h.

◆ PCKEV_B3_UB

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

Definition at line 1729 of file generic_macros_msa.h.

◆ PCKEV_B3_SB

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

Definition at line 1730 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 1732 of file generic_macros_msa.h.

◆ PCKEV_B4_SB

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

Definition at line 1738 of file generic_macros_msa.h.

◆ PCKEV_B4_UB

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

Definition at line 1739 of file generic_macros_msa.h.

◆ PCKEV_B4_SH

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

Definition at line 1740 of file generic_macros_msa.h.

◆ PCKEV_B4_SW

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

Definition at line 1741 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 1754 of file generic_macros_msa.h.

◆ PCKEV_H2_SH

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

Definition at line 1759 of file generic_macros_msa.h.

◆ PCKEV_H2_SW

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

Definition at line 1760 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 1762 of file generic_macros_msa.h.

◆ PCKEV_H4_SH

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

Definition at line 1768 of file generic_macros_msa.h.

◆ PCKEV_H4_SW

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

Definition at line 1769 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 1782 of file generic_macros_msa.h.

◆ PCKEV_D2_UB

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

Definition at line 1787 of file generic_macros_msa.h.

◆ PCKEV_D2_SB

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

Definition at line 1788 of file generic_macros_msa.h.

◆ PCKEV_D2_SH

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

Definition at line 1789 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 1791 of file generic_macros_msa.h.

◆ PCKEV_D4_UB

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

Definition at line 1797 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 1808 of file generic_macros_msa.h.

◆ PCKOD_D2_UB

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

Definition at line 1813 of file generic_macros_msa.h.

◆ PCKOD_D2_SH

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

Definition at line 1814 of file generic_macros_msa.h.

◆ PCKOD_D2_SD

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

Definition at line 1815 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 1829 of file generic_macros_msa.h.

◆ XORI_B2_128_UB

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

Definition at line 1834 of file generic_macros_msa.h.

◆ XORI_B2_128_SB

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

Definition at line 1835 of file generic_macros_msa.h.

◆ XORI_B2_128_SH

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

Definition at line 1836 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 1838 of file generic_macros_msa.h.

◆ XORI_B3_128_SB

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

Definition at line 1843 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 1845 of file generic_macros_msa.h.

◆ XORI_B4_128_UB

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

Definition at line 1850 of file generic_macros_msa.h.

◆ XORI_B4_128_SB

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

Definition at line 1851 of file generic_macros_msa.h.

◆ XORI_B4_128_SH

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

Definition at line 1852 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 1854 of file generic_macros_msa.h.

◆ XORI_B5_128_SB

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

Definition at line 1859 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 1861 of file generic_macros_msa.h.

◆ XORI_B6_128_SB

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

Definition at line 1866 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 1868 of file generic_macros_msa.h.

◆ XORI_B7_128_SB

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

Definition at line 1873 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 1875 of file generic_macros_msa.h.

◆ XORI_B8_128_SB

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

Definition at line 1880 of file generic_macros_msa.h.

◆ XORI_B8_128_UB

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

Definition at line 1881 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 1892 of file generic_macros_msa.h.

◆ ADDS_SH2_SH

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

Definition at line 1897 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 1899 of file generic_macros_msa.h.

◆ ADDS_SH4_UH

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

Definition at line 1905 of file generic_macros_msa.h.

◆ ADDS_SH4_SH

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

Definition at line 1906 of file generic_macros_msa.h.

◆ SLLI_2V

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

Definition at line 1916 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 1921 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 1939 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 1957 of file generic_macros_msa.h.

◆ SRL_H4_UH

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

Definition at line 1964 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 1966 of file generic_macros_msa.h.

◆ SRLR_H4_UH

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

Definition at line 1973 of file generic_macros_msa.h.

◆ SRLR_H4_SH

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

Definition at line 1974 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 1976 of file generic_macros_msa.h.

◆ SRLR_H8_UH

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

Definition at line 1981 of file generic_macros_msa.h.

◆ SRLR_H8_SH

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

Definition at line 1982 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 1995 of file generic_macros_msa.h.

◆ SRAR_H2_UH

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

Definition at line 2000 of file generic_macros_msa.h.

◆ SRAR_H2_SH

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

Definition at line 2001 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 2003 of file generic_macros_msa.h.

◆ SRAR_H3_SH

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

Definition at line 2008 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 2010 of file generic_macros_msa.h.

◆ SRAR_H4_UH

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

Definition at line 2015 of file generic_macros_msa.h.

◆ SRAR_H4_SH

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

Definition at line 2016 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 2029 of file generic_macros_msa.h.

◆ SRAR_W2_SW

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

Definition at line 2034 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 2036 of file generic_macros_msa.h.

◆ SRAR_W4_SW

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

Definition at line 2041 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 2053 of file generic_macros_msa.h.

◆ SRARI_H2_UH

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

Definition at line 2058 of file generic_macros_msa.h.

◆ SRARI_H2_SH

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

Definition at line 2059 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 2061 of file generic_macros_msa.h.

◆ SRARI_H4_UH

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

Definition at line 2066 of file generic_macros_msa.h.

◆ SRARI_H4_SH

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

Definition at line 2067 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 2079 of file generic_macros_msa.h.

◆ SRARI_W2_SW

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

Definition at line 2084 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 2086 of file generic_macros_msa.h.

◆ SRARI_W4_SH

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

Definition at line 2091 of file generic_macros_msa.h.

◆ SRARI_W4_SW

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

Definition at line 2092 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 2101 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 2106 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 2118 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 2123 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 2135 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 2140 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 2156 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 2172 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 2191 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 2206 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 2224 of file generic_macros_msa.h.

◆ SWAP

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

Definition at line 2237 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 2249 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 2263 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 2282 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 2312 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 2332 of file generic_macros_msa.h.

◆ TRANSPOSE8x4_UB_UB

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

Definition at line 2348 of file generic_macros_msa.h.

◆ TRANSPOSE8x4_UB_UH

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

Definition at line 2349 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 2359 of file generic_macros_msa.h.

◆ TRANSPOSE8x8_UB_UB

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

Definition at line 2375 of file generic_macros_msa.h.

◆ TRANSPOSE8x8_UB_UH

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

Definition at line 2376 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 2385 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 2420 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 2466 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 2482 of file generic_macros_msa.h.

◆ TRANSPOSE8x8_UH_UH

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

Definition at line 2504 of file generic_macros_msa.h.

◆ TRANSPOSE8x8_SH_SH

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

Definition at line 2505 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 2513 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 2540 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 2571 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 2597 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 2626 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 2650 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 2678 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 2696 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 2732 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 2751 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 2763 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 2780 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 2799 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 2809 of file generic_macros_msa.h.

ILVR_H2_SH
#define ILVR_H2_SH(...)
Definition: generic_macros_msa.h:1392
out
FILE * out
Definition: movenc.c:54
ILVRL_W2_SW
#define ILVRL_W2_SW(...)
Definition: generic_macros_msa.h:1518
max
#define max(a, b)
Definition: cuda_runtime.h:33
AVER_UB4_UB
#define AVER_UB4_UB(...)
Definition: generic_macros_msa.h:603
ST_UB4
#define ST_UB4(...)
Definition: generic_macros_msa.h:374
ILVRL_W2
#define ILVRL_W2(RTYPE, in0, in1, out0, out1)
Definition: generic_macros_msa.h:1511
ILVEV_W2_SB
#define ILVEV_W2_SB(...)
Definition: generic_macros_msa.h:1226
s3
#define s3
Definition: regdef.h:40
val
static double val(void *priv, double ch)
Definition: aeval.c:78
SW
#define SW(val, pdst)
Definition: generic_macros_msa.h:167
mask
static const uint16_t mask[17]
Definition: lzw.c:38
s
#define s(width, name)
Definition: cbs_vp9.c:198
s1
#define s1
Definition: regdef.h:38
ILVR_B4_SB
#define ILVR_B4_SB(...)
Definition: generic_macros_msa.h:1360
ILVR_D2_SB
#define ILVR_D2_SB(...)
Definition: generic_macros_msa.h:1444
ILVEV_W2_SD
#define ILVEV_W2_SD(...)
Definition: generic_macros_msa.h:1228
LW
#define LW(psrc)
Definition: generic_macros_msa.h:104
s2
#define s2
Definition: regdef.h:39
PCKEV_XORI128_UB
#define PCKEV_XORI128_UB(in0, in1)
Definition: generic_macros_msa.h:2751
shift
static int shift(int a, int b)
Definition: bonk.c:262
LD_UB4
#define LD_UB4(...)
Definition: generic_macros_msa.h:296
SW4
#define SW4(in0, in1, in2, in3, pdst, stride)
Definition: generic_macros_msa.h:241
LD_V
#define LD_V(RTYPE, psrc)
Definition: generic_macros_msa.h:31
stride
#define stride
Definition: h264pred_template.c:537
ILVR_D2_SH
#define ILVR_D2_SH(...)
Definition: generic_macros_msa.h:1445
s0
#define s0
Definition: regdef.h:37
ILVRL_B2_SH
#define ILVRL_B2_SH(...)
Definition: generic_macros_msa.h:1498
PCKEV_B2_SB
#define PCKEV_B2_SB(...)
Definition: generic_macros_msa.h:1719
d
d
Definition: ffmpeg_filter.c:368
coeff
static const double coeff[2][5]
Definition: vf_owdenoise.c:79
LD
#define LD(psrc)
Definition: generic_macros_msa.h:137
min
float min
Definition: vorbis_enc_data.h:429