[clang] 237be34 - [WebAssembly] Improve macro hygiene in wasm_simd128.h
Thomas Lively via cfe-commits
cfe-commits at lists.llvm.org
Tue Jun 2 12:55:16 PDT 2020
Author: Thomas Lively
Date: 2020-06-02T12:55:06-07:00
New Revision: 237be3404b448637ec3b36f8992434193c5bc64c
URL: https://github.com/llvm/llvm-project/commit/237be3404b448637ec3b36f8992434193c5bc64c
DIFF: https://github.com/llvm/llvm-project/commit/237be3404b448637ec3b36f8992434193c5bc64c.diff
LOG: [WebAssembly] Improve macro hygiene in wasm_simd128.h
Summary:
The shuffle intrinsic macros did not parenthesize usages of their
constant parameters, which could lead to incorrect results due to
operator precedence issues. This patch fixes the problem by adding the
missing paretheses.
Reviewers: aheejin
Subscribers: dschuff, sbc100, jgravelle-google, sunfish, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D80968
Added:
Modified:
clang/lib/Headers/wasm_simd128.h
Removed:
################################################################################
diff --git a/clang/lib/Headers/wasm_simd128.h b/clang/lib/Headers/wasm_simd128.h
index 580aa1e85c1b..258198a7de34 100644
--- a/clang/lib/Headers/wasm_simd128.h
+++ b/clang/lib/Headers/wasm_simd128.h
@@ -1034,24 +1034,24 @@ wasm_f32x4_convert_u32x4(v128_t __a) {
#define wasm_v16x8_shuffle(__a, __b, __c0, __c1, __c2, __c3, __c4, __c5, __c6, \
__c7) \
((v128_t)__builtin_wasm_shuffle_v8x16( \
- (__i8x16)(__a), (__i8x16)(__b), __c0 * 2, __c0 * 2 + 1, __c1 * 2, \
- __c1 * 2 + 1, __c2 * 2, __c2 * 2 + 1, __c3 * 2, __c3 * 2 + 1, __c4 * 2, \
- __c4 * 2 + 1, __c5 * 2, __c5 * 2 + 1, __c6 * 2, __c6 * 2 + 1, __c7 * 2, \
- __c7 * 2 + 1))
+ (__i8x16)(__a), (__i8x16)(__b), (__c0)*2, (__c0)*2 + 1, (__c1)*2, \
+ (__c1)*2 + 1, (__c2)*2, (__c2)*2 + 1, (__c3)*2, (__c3)*2 + 1, (__c4)*2, \
+ (__c4)*2 + 1, (__c5)*2, (__c5)*2 + 1, (__c6)*2, (__c6)*2 + 1, (__c7)*2, \
+ (__c7)*2 + 1))
#define wasm_v32x4_shuffle(__a, __b, __c0, __c1, __c2, __c3) \
((v128_t)__builtin_wasm_shuffle_v8x16( \
- (__i8x16)(__a), (__i8x16)(__b), __c0 * 4, __c0 * 4 + 1, __c0 * 4 + 2, \
- __c0 * 4 + 3, __c1 * 4, __c1 * 4 + 1, __c1 * 4 + 2, __c1 * 4 + 3, \
- __c2 * 4, __c2 * 4 + 1, __c2 * 4 + 2, __c2 * 4 + 3, __c3 * 4, \
- __c3 * 4 + 1, __c3 * 4 + 2, __c3 * 4 + 3))
+ (__i8x16)(__a), (__i8x16)(__b), (__c0)*4, (__c0)*4 + 1, (__c0)*4 + 2, \
+ (__c0)*4 + 3, (__c1)*4, (__c1)*4 + 1, (__c1)*4 + 2, (__c1)*4 + 3, \
+ (__c2)*4, (__c2)*4 + 1, (__c2)*4 + 2, (__c2)*4 + 3, (__c3)*4, \
+ (__c3)*4 + 1, (__c3)*4 + 2, (__c3)*4 + 3))
#define wasm_v64x2_shuffle(__a, __b, __c0, __c1) \
((v128_t)__builtin_wasm_shuffle_v8x16( \
- (__i8x16)(__a), (__i8x16)(__b), __c0 * 8, __c0 * 8 + 1, __c0 * 8 + 2, \
- __c0 * 8 + 3, __c0 * 8 + 4, __c0 * 8 + 5, __c0 * 8 + 6, __c0 * 8 + 7, \
- __c1 * 8, __c1 * 8 + 1, __c1 * 8 + 2, __c1 * 8 + 3, __c1 * 8 + 4, \
- __c1 * 8 + 5, __c1 * 8 + 6, __c1 * 8 + 7))
+ (__i8x16)(__a), (__i8x16)(__b), (__c0)*8, (__c0)*8 + 1, (__c0)*8 + 2, \
+ (__c0)*8 + 3, (__c0)*8 + 4, (__c0)*8 + 5, (__c0)*8 + 6, (__c0)*8 + 7, \
+ (__c1)*8, (__c1)*8 + 1, (__c1)*8 + 2, (__c1)*8 + 3, (__c1)*8 + 4, \
+ (__c1)*8 + 5, (__c1)*8 + 6, (__c1)*8 + 7))
static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_v8x16_swizzle(v128_t __a,
v128_t __b) {
More information about the cfe-commits
mailing list