tlively created this revision. tlively added a reviewer: aheejin. Herald added subscribers: wingo, ecnelises, sunfish, jgravelle-google, sbc100, dschuff. tlively requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits.
The builtins were updated to take signed parameters in 627a52695537 <https://reviews.llvm.org/rG627a52695537dd2bea068630887431febbf06856>, 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. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D101979 Files: clang/lib/Headers/wasm_simd128.h clang/test/Headers/wasm.c Index: clang/test/Headers/wasm.c =================================================================== --- clang/test/Headers/wasm.c +++ 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> Index: clang/lib/Headers/wasm_simd128.h =================================================================== --- clang/lib/Headers/wasm_simd128.h +++ clang/lib/Headers/wasm_simd128.h @@ -1197,8 +1197,8 @@ 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 @@ 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
Index: clang/test/Headers/wasm.c =================================================================== --- clang/test/Headers/wasm.c +++ 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> Index: clang/lib/Headers/wasm_simd128.h =================================================================== --- clang/lib/Headers/wasm_simd128.h +++ clang/lib/Headers/wasm_simd128.h @@ -1197,8 +1197,8 @@ 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 @@ 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
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits