Skip to content

Commit

Permalink
simd-128: The input lanes of integer-to-integer narrowing ops should …
Browse files Browse the repository at this point in the history
  • Loading branch information
liutao-liu committed Jan 3, 2024
1 parent a8e8507 commit e1d054d
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions core/iwasm/compilation/simd/simd_conversions.c
Original file line number Diff line number Diff line change
Expand Up @@ -158,11 +158,15 @@ simd_integer_narrow_common(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx,
return false;
}

/* sat */
/* Refer to:
* https://github.com/WebAssembly/spec/blob/main/proposals/simd/SIMD.md#integer-to-integer-narrowing
* Regardless of the whether the operation is signed or unsigned, the input
* lanes are interpreted as signed integers.
*/
if (!(vec1 = simd_saturate(comp_ctx, func_ctx, e_sat_i16x8, vec1, min, max,
is_signed))
true))
|| !(vec2 = simd_saturate(comp_ctx, func_ctx, e_sat_i16x8, vec2, min,
max, is_signed))) {
max, true))) {
return false;
}

Expand Down Expand Up @@ -740,4 +744,4 @@ aot_compile_simd_i64x2_extmul_i32x4(AOTCompContext *comp_ctx,
{
return simd_integer_extmul(comp_ctx, func_ctx, lower_half, is_signed,
e_i64x2_extmul_i32x4);
}
}

0 comments on commit e1d054d

Please sign in to comment.