forked from OSchip/llvm-project
[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
This commit is contained in:
parent
0e7c2aeaa8
commit
627a526955
|
@ -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")
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue