Added
Link Here
|
0 |
- |
1 |
diff --git a/src/pseudo_intrinsics.h b/src/pseudo_intrinsics.h |
|
|
2 |
index 5fabbdbb81..450e2477b5 100644 |
3 |
--- a/src/pseudo_intrinsics.h |
4 |
+++ b/src/pseudo_intrinsics.h |
5 |
@@ -66,10 +66,10 @@ typedef union { |
6 |
#define VLOADU_EMULATED 1 |
7 |
#define vor(x, y) (vtype)vorrq_u32((x).v32, (y).v32) |
8 |
#define vorn(x, y) (vtype)vornq_u32((x).v32, (y).v32) |
9 |
-#define vroti_epi32(x, i) (i > 0 ? (vtype)vsliq_n_u32(vshrq_n_u32((x).v32, 32 - (i)), (x).v32, i) : \ |
10 |
- (vtype)vsriq_n_u32(vshlq_n_u32((x).v32, 32 + (i)), (x).v32, -(i))) |
11 |
-#define vroti_epi64(x, i) (i > 0 ? (vtype)vsliq_n_u64(vshrq_n_u64((x).v64, 64 - (i)), (x).v64, i) : \ |
12 |
- (vtype)vsriq_n_u64(vshlq_n_u64((x).v64, 64 + (i)), (x).v64, -(i))) |
13 |
+#define vroti_epi32(x, i) (i > 0 ? (vtype)vsliq_n_u32(vshrq_n_u32((x).v32, 32 - ((i) & 31)), (x).v32, (i) & 31) : \ |
14 |
+ (vtype)vsriq_n_u32(vshlq_n_u32((x).v32, (32 + (i)) & 31), (x).v32, (-(i)) & 31)) |
15 |
+#define vroti_epi64(x, i) (i > 0 ? (vtype)vsliq_n_u64(vshrq_n_u64((x).v64, 64 - ((i) & 63)), (x).v64, (i) & 63) : \ |
16 |
+ (vtype)vsriq_n_u64(vshlq_n_u64((x).v64, (64 + (i)) & 63), (x).v64, (-(i)) & 63)) |
17 |
#define vroti16_epi32 vroti_epi32 |
18 |
#define vset1_epi32(i) (vtype)vdupq_n_u32(i) |
19 |
#define vset1_epi64(i) (vtype)vdupq_n_u64(i) |