From 627a52695537dd2bea068630887431febbf06856 Mon Sep 17 00:00:00 2001 From: Thomas Lively Date: Wed, 5 May 2021 13:04:04 -0700 Subject: [PATCH] [WebAssembly] Update narrowing builtin function operand types Make the inputs to all narrowing builtins signed, which is how they are interpreted by the underlying instructions (only the result changes sign between instructions). Differential Revision: https://reviews.llvm.org/D101883 --- clang/include/clang/Basic/BuiltinsWebAssembly.def | 4 ++-- clang/test/CodeGen/builtins-wasm.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/clang/include/clang/Basic/BuiltinsWebAssembly.def b/clang/include/clang/Basic/BuiltinsWebAssembly.def index 1a89b00..e3e223f 100644 --- a/clang/include/clang/Basic/BuiltinsWebAssembly.def +++ b/clang/include/clang/Basic/BuiltinsWebAssembly.def @@ -185,9 +185,9 @@ TARGET_BUILTIN(__builtin_wasm_trunc_saturate_s_i32x4_f32x4, "V4iV4f", "nc", "sim TARGET_BUILTIN(__builtin_wasm_trunc_saturate_u_i32x4_f32x4, "V4iV4f", "nc", "simd128") TARGET_BUILTIN(__builtin_wasm_narrow_s_i8x16_i16x8, "V16ScV8sV8s", "nc", "simd128") -TARGET_BUILTIN(__builtin_wasm_narrow_u_i8x16_i16x8, "V16UcV8UsV8Us", "nc", "simd128") +TARGET_BUILTIN(__builtin_wasm_narrow_u_i8x16_i16x8, "V16UcV8sV8s", "nc", "simd128") TARGET_BUILTIN(__builtin_wasm_narrow_s_i16x8_i32x4, "V8sV4iV4i", "nc", "simd128") -TARGET_BUILTIN(__builtin_wasm_narrow_u_i16x8_i32x4, "V8UsV4UiV4Ui", "nc", "simd128") +TARGET_BUILTIN(__builtin_wasm_narrow_u_i16x8_i32x4, "V8UsV4iV4i", "nc", "simd128") TARGET_BUILTIN(__builtin_wasm_trunc_sat_zero_s_f64x2_i32x4, "V4iV2d", "nc", "simd128") TARGET_BUILTIN(__builtin_wasm_trunc_sat_zero_u_f64x2_i32x4, "V4UiV2d", "nc", "simd128") diff --git a/clang/test/CodeGen/builtins-wasm.c b/clang/test/CodeGen/builtins-wasm.c index a7268fa..6d774b1 100644 --- a/clang/test/CodeGen/builtins-wasm.c +++ b/clang/test/CodeGen/builtins-wasm.c @@ -857,7 +857,7 @@ i8x16 narrow_s_i8x16_i16x8(i16x8 low, i16x8 high) { // WEBASSEMBLY: ret } -u8x16 narrow_u_i8x16_i16x8(u16x8 low, u16x8 high) { +u8x16 narrow_u_i8x16_i16x8(i16x8 low, i16x8 high) { return __builtin_wasm_narrow_u_i8x16_i16x8(low, high); // WEBASSEMBLY: call <16 x i8> @llvm.wasm.narrow.unsigned.v16i8.v8i16( // WEBASSEMBLY-SAME: <8 x i16> %low, <8 x i16> %high) @@ -871,7 +871,7 @@ i16x8 narrow_s_i16x8_i32x4(i32x4 low, i32x4 high) { // WEBASSEMBLY: ret } -u16x8 narrow_u_i16x8_i32x4(u32x4 low, u32x4 high) { +u16x8 narrow_u_i16x8_i32x4(i32x4 low, i32x4 high) { return __builtin_wasm_narrow_u_i16x8_i32x4(low, high); // WEBASSEMBLY: call <8 x i16> @llvm.wasm.narrow.unsigned.v8i16.v4i32( // WEBASSEMBLY-SAME: <4 x i32> %low, <4 x i32> %high) -- 2.7.4