annotate ppc/types_altivec.h @ 4443:54bed3ee58f3 libavcodec

simpify state and make code 2% faster reimar, dont hesitate to flame me for not sending patches and feel free to revert any or all of my changes to lzo.c if you dont like them
author michael
date Wed, 31 Jan 2007 10:34:13 +0000
parents 6a546bbe5b31
children 9ecbfc0c82bf
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4214
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
1 /*
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
2 * Copyright (c) 2006 Guillaume Poirier <gpoirier@mplayerhq.hu>
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
3 *
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
4 * This file is part of FFmpeg.
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
5 *
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
6 * FFmpeg is free software; you can redistribute it and/or
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
7 * modify it under the terms of the GNU Lesser General Public
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
8 * License as published by the Free Software Foundation; either
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
9 * version 2.1 of the License, or (at your option) any later version.
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
10 *
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
11 * FFmpeg is distributed in the hope that it will be useful,
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
14 * Lesser General Public License for more details.
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
15 *
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
16 * You should have received a copy of the GNU Lesser General Public
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
17 * License along with FFmpeg; if not, write to the Free Software
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
19 */
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
20
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
21 /***********************************************************************
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
22 * Vector types
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
23 **********************************************************************/
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
24 #define vec_u8_t vector unsigned char
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
25 #define vec_s8_t vector signed char
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
26 #define vec_u16_t vector unsigned short
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
27 #define vec_s16_t vector signed short
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
28 #define vec_u32_t vector unsigned int
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
29 #define vec_s32_t vector signed int
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
30
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
31 /***********************************************************************
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
32 * Null vector
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
33 **********************************************************************/
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
34 #define LOAD_ZERO const vec_u8_t zerov = vec_splat_u8( 0 )
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
35
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
36 #define zero_u8v (vec_u8_t) zerov
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
37 #define zero_s8v (vec_s8_t) zerov
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
38 #define zero_u16v (vec_u16_t) zerov
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
39 #define zero_s16v (vec_s16_t) zerov
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
40 #define zero_u32v (vec_u32_t) zerov
6a546bbe5b31 Add useful Altivec types, taken from with permission from x264 authors
gpoirier
parents:
diff changeset
41 #define zero_s32v (vec_s32_t) zerov