38 #ifndef included_vector_iwmmxt_h 39 #define included_vector_iwmmxt_h 47 return __builtin_arm_wunpckihb (a, b);
53 return __builtin_arm_wunpckilb (a, b);
59 return __builtin_arm_wunpckihh (a, b);
65 return __builtin_arm_wunpckilh (a, b);
71 return __builtin_arm_wunpckihw (a, b);
77 return __builtin_arm_wunpckilw (a, b);
103 #define i32x2_splat u32x2_splat 104 #define i16x4_splat u16x4_splat 105 #define i8x8_splat u8x8_splat 111 #define _(t,u,lr,f) \ 113 t##_##lr (t x, int i) \ 116 asm (#f " %[y], %[x], %[shift]" \ 118 : [x] "y" (x), [shift] "i" (i * u)); \ 122 _(u16x4, 1, shift_left, wsllhi)
123 _(u32x2, 1, shift_left, wsllwi)
124 _(u16x4, 1, shift_right, wsrlhi)
125 _(u32x2, 1, shift_right, wsrlwi)
126 _(i16x4, 1, shift_left, wsllhi)
127 _(i32x2, 1, shift_left, wsllwi)
128 _(i16x4, 1, shift_right, wsrahi) _(i32x2, 1, shift_right, wsrawi)
130 _(u8x8, 8, word_shift_left, wslldi)
131 _(u16x4, 16, word_shift_left, wslldi)
132 _(u32x2, 32, word_shift_left, wslldi)
133 _(u8x8, 8, word_shift_right, wsrldi)
134 _(u16x4, 16, word_shift_right, wsrldi)
135 _(u32x2, 32, word_shift_right, wsrldi)
136 _(i8x8, 8, word_shift_left, wslldi)
137 _(i16x4, 16, word_shift_left, wslldi)
138 _(i32x2, 32, word_shift_left, wslldi)
139 _(i8x8, 8, word_shift_right, wsrldi)
140 _(i16x4, 16, word_shift_right, wsrldi) _(i32x2, 32, word_shift_right, wsrldi)
static u32x2 u32x2_splat(u32 a)
static u8x8 u8x8_splat(u8 a)
static u32x2 u32x2_interleave_lo(u32x2 a, u32x2 b)
static u16x4 u16x4_interleave_lo(u16x4 a, u16x4 b)
static u8x8 u8x8_interleave_lo(u8x8 a, u8x8 b)
static u32x2 u32x2_interleave_hi(u32x2 a, u32x2 b)
static u16x4 u16x4_interleave_hi(u16x4 a, u16x4 b)
static u8x8 u8x8_interleave_hi(u8x8 a, u8x8 b)
static u16x4 u16x4_splat(u16 a)