Implement wasm saturating conversions;

This commit is contained in:
Benjamin Bouvier
2018-07-27 19:11:39 +02:00
committed by Dan Gohman
parent 9dbfbbde10
commit f7e481d9ac
5 changed files with 305 additions and 31 deletions

View File

@@ -69,6 +69,54 @@ ebb0(v0: f64):
return v1
}
function %i32_trunc_s_sat_f32(f32) -> i32 {
ebb0(v0: f32):
v1 = fcvt_to_sint_sat.i32 v0
return v1
}
function %i32_trunc_u_sat_f32(f32) -> i32 {
ebb0(v0: f32):
v1 = fcvt_to_uint_sat.i32 v0
return v1
}
function %i32_trunc_s_sat_f64(f64) -> i32 {
ebb0(v0: f64):
v1 = fcvt_to_sint_sat.i32 v0
return v1
}
function %i32_trunc_u_sat_f64(f64) -> i32 {
ebb0(v0: f64):
v1 = fcvt_to_uint_sat.i32 v0
return v1
}
function %i64_trunc_s_sat_f32(f32) -> i64 {
ebb0(v0: f32):
v1 = fcvt_to_sint_sat.i64 v0
return v1
}
function %i64_trunc_u_sat_f32(f32) -> i64 {
ebb0(v0: f32):
v1 = fcvt_to_uint_sat.i64 v0
return v1
}
function %i64_trunc_s_sat_f64(f64) -> i64 {
ebb0(v0: f64):
v1 = fcvt_to_sint_sat.i64 v0
return v1
}
function %i64_trunc_u_sat_f64(f64) -> i64 {
ebb0(v0: f64):
v1 = fcvt_to_uint_sat.i64 v0
return v1
}
function %f32_trunc_f64(f64) -> f32 {
ebb0(v0: f64):
v1 = fdemote.f32 v0