OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2016 The LibYuv Project Authors. All rights reserved. | 2 * Copyright 2016 The LibYuv Project Authors. All rights reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
11 #ifndef INCLUDE_LIBYUV_MACROS_MSA_H_ // NOLINT | 11 #ifndef INCLUDE_LIBYUV_MACROS_MSA_H_ |
12 #define INCLUDE_LIBYUV_MACROS_MSA_H_ | 12 #define INCLUDE_LIBYUV_MACROS_MSA_H_ |
13 | 13 |
14 #if !defined(LIBYUV_DISABLE_MSA) && defined(__mips_msa) | 14 #if !defined(LIBYUV_DISABLE_MSA) && defined(__mips_msa) |
15 #include <stdint.h> | 15 #include <stdint.h> |
16 #include <msa.h> | 16 #include <msa.h> |
17 | 17 |
18 #define LD_B(RTYPE, psrc) *((RTYPE*)(psrc)) | 18 #define LD_B(RTYPE, psrc) *((RTYPE*)(psrc)) /* NOLINT */ |
19 #define LD_UB(...) LD_B(v16u8, __VA_ARGS__) | 19 #define LD_UB(...) LD_B(v16u8, __VA_ARGS__) |
20 | 20 |
21 #define ST_B(RTYPE, in, pdst) *((RTYPE*)(pdst)) = (in) | 21 #define ST_B(RTYPE, in, pdst) *((RTYPE*)(pdst)) = (in) /* NOLINT */ |
22 #define ST_UB(...) ST_B(v16u8, __VA_ARGS__) | 22 #define ST_UB(...) ST_B(v16u8, __VA_ARGS__) |
23 | 23 |
24 /* Description : Load two vectors with 16 'byte' sized elements | 24 /* Description : Load two vectors with 16 'byte' sized elements |
25 Arguments : Inputs - psrc, stride | 25 Arguments : Inputs - psrc, stride |
26 Outputs - out0, out1 | 26 Outputs - out0, out1 |
27 Return Type - as per RTYPE | 27 Return Type - as per RTYPE |
28 Details : Load 16 byte elements in 'out0' from (psrc) | 28 Details : Load 16 byte elements in 'out0' from (psrc) |
29 Load 16 byte elements in 'out1' from (psrc + stride) | 29 Load 16 byte elements in 'out1' from (psrc + stride) |
30 */ | 30 */ |
31 #define LD_B2(RTYPE, psrc, stride, out0, out1) { \ | 31 #define LD_B2(RTYPE, psrc, stride, out0, out1) { \ |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
66 'out0' as per control vector 'mask0' | 66 'out0' as per control vector 'mask0' |
67 */ | 67 */ |
68 #define VSHF_B2(RTYPE, in0, in1, in2, in3, mask0, mask1, out0, out1) { \ | 68 #define VSHF_B2(RTYPE, in0, in1, in2, in3, mask0, mask1, out0, out1) { \ |
69 out0 = (RTYPE) __msa_vshf_b((v16i8) mask0, (v16i8) in1, (v16i8) in0); \ | 69 out0 = (RTYPE) __msa_vshf_b((v16i8) mask0, (v16i8) in1, (v16i8) in0); \ |
70 out1 = (RTYPE) __msa_vshf_b((v16i8) mask1, (v16i8) in3, (v16i8) in2); \ | 70 out1 = (RTYPE) __msa_vshf_b((v16i8) mask1, (v16i8) in3, (v16i8) in2); \ |
71 } | 71 } |
72 #define VSHF_B2_UB(...) VSHF_B2(v16u8, __VA_ARGS__) | 72 #define VSHF_B2_UB(...) VSHF_B2(v16u8, __VA_ARGS__) |
73 | 73 |
74 #endif /* !defined(LIBYUV_DISABLE_MSA) && defined(__mips_msa) */ | 74 #endif /* !defined(LIBYUV_DISABLE_MSA) && defined(__mips_msa) */ |
75 | 75 |
76 #endif // INCLUDE_LIBYUV_MACROS_MSA_H_ NOLINT | 76 #endif // INCLUDE_LIBYUV_MACROS_MSA_H_ |
OLD | NEW |