Author: Thomas Lively Date: 2021-05-06T10:07:45-07:00 New Revision: b198b9b8974b19c9e8493f8d70c85ac54182597a
URL: https://github.com/llvm/llvm-project/commit/b198b9b8974b19c9e8493f8d70c85ac54182597a DIFF: https://github.com/llvm/llvm-project/commit/b198b9b8974b19c9e8493f8d70c85ac54182597a.diff LOG: [WebAssembly] Fix argument types in SIMD narrowing intrinsics The builtins were updated to take signed parameters in 627a52695537, but the intrinsics that use those builtins were not updated as well. The intrinsic test did not catch this sign mismatch because it is only reported as an error under -fno-lax-vector-conversions. This commit fixes the type mismatch and adds -fno-lax-vector-conversions to the test to catch similar problems in the future. Differential Revision: https://reviews.llvm.org/D101979 Added: Modified: clang/lib/Headers/wasm_simd128.h clang/test/Headers/wasm.c Removed: ################################################################################ diff --git a/clang/lib/Headers/wasm_simd128.h b/clang/lib/Headers/wasm_simd128.h index e6fb0496e514..cd11f096dd95 100644 --- a/clang/lib/Headers/wasm_simd128.h +++ b/clang/lib/Headers/wasm_simd128.h @@ -1197,8 +1197,8 @@ wasm_i8x16_narrow_i16x8(v128_t __a, v128_t __b) { static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_u8x16_narrow_i16x8(v128_t __a, v128_t __b) { - return (v128_t)__builtin_wasm_narrow_u_i8x16_i16x8((__u16x8)__a, - (__u16x8)__b); + return (v128_t)__builtin_wasm_narrow_u_i8x16_i16x8((__i16x8)__a, + (__i16x8)__b); } static __inline__ v128_t __DEFAULT_FN_ATTRS @@ -1209,8 +1209,8 @@ wasm_i16x8_narrow_i32x4(v128_t __a, v128_t __b) { static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_u16x8_narrow_i32x4(v128_t __a, v128_t __b) { - return (v128_t)__builtin_wasm_narrow_u_i16x8_i32x4((__u32x4)__a, - (__u32x4)__b); + return (v128_t)__builtin_wasm_narrow_u_i16x8_i32x4((__i32x4)__a, + (__i32x4)__b); } static __inline__ v128_t __DEFAULT_FN_ATTRS diff --git a/clang/test/Headers/wasm.c b/clang/test/Headers/wasm.c index f5076ae3af30..409da99d43a7 100644 --- a/clang/test/Headers/wasm.c +++ b/clang/test/Headers/wasm.c @@ -1,7 +1,7 @@ // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --force-update // REQUIRES: webassembly-registered-target, asserts -// RUN: %clang %s -O2 -emit-llvm -S -o - -target wasm32-unknown-unknown -msimd128 -Wcast-qual -Werror | FileCheck %s +// RUN: %clang %s -O2 -emit-llvm -S -o - -target wasm32-unknown-unknown -msimd128 -Wcast-qual -fno-lax-vector-conversions -Werror | FileCheck %s #include <wasm_simd128.h> _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits