|
|
@ -94,6 +94,46 @@ block0(v1: i32): |
|
|
|
|
|
|
|
; check: return v1 |
|
|
|
|
|
|
|
function %sextend_then_reduce_smaller(i32) -> i16 { |
|
|
|
block0(v1: i32): |
|
|
|
v2 = sextend.i64 v1 |
|
|
|
v3 = ireduce.i16 v2 |
|
|
|
return v3 |
|
|
|
} |
|
|
|
|
|
|
|
; check: v4 = ireduce.i16 v1 |
|
|
|
; check: return v4 |
|
|
|
|
|
|
|
function %uextend_then_reduce_smaller(i32) -> i16 { |
|
|
|
block0(v1: i32): |
|
|
|
v2 = uextend.i64 v1 |
|
|
|
v3 = ireduce.i16 v2 |
|
|
|
return v3 |
|
|
|
} |
|
|
|
|
|
|
|
; check: v4 = ireduce.i16 v1 |
|
|
|
; check: return v4 |
|
|
|
|
|
|
|
function %sextend_then_reduce_partially(i16) -> i32 { |
|
|
|
block0(v1: i16): |
|
|
|
v2 = sextend.i64 v1 |
|
|
|
v3 = ireduce.i32 v2 |
|
|
|
return v3 |
|
|
|
} |
|
|
|
|
|
|
|
; check: v4 = sextend.i32 v1 |
|
|
|
; check: return v4 |
|
|
|
|
|
|
|
function %uextend_then_reduce_partially(i16) -> i32 { |
|
|
|
block0(v1: i16): |
|
|
|
v2 = uextend.i64 v1 |
|
|
|
v3 = ireduce.i32 v2 |
|
|
|
return v3 |
|
|
|
} |
|
|
|
|
|
|
|
; check: v4 = uextend.i32 v1 |
|
|
|
; check: return v4 |
|
|
|
|
|
|
|
function %sextend_then_slt_zero(i8) -> i8 { |
|
|
|
block0(v0: i8): |
|
|
|
v1 = sextend.i16 v0 |
|
|
@ -127,8 +167,8 @@ block0(v0: i64, v1: i64): |
|
|
|
return v5 |
|
|
|
} |
|
|
|
|
|
|
|
; check: v10 = imul v0, v1 |
|
|
|
; check: return v10 |
|
|
|
; check: v8 = imul v0, v1 |
|
|
|
; check: return v8 |
|
|
|
|
|
|
|
function %extend_iadd_reduce(i16, i16) -> i16 { |
|
|
|
block0(v0: i16, v1: i16): |
|
|
@ -139,8 +179,8 @@ block0(v0: i16, v1: i16): |
|
|
|
return v5 |
|
|
|
} |
|
|
|
|
|
|
|
; check: v10 = iadd v0, v1 |
|
|
|
; check: return v10 |
|
|
|
; check: v8 = iadd v0, v1 |
|
|
|
; check: return v8 |
|
|
|
|
|
|
|
function %extend_bxor_reduce(i64, i64) -> i64 { |
|
|
|
block0(v0: i64, v1: i64): |
|
|
@ -163,8 +203,8 @@ block0(v0: i16, v1: i16): |
|
|
|
return v5 |
|
|
|
} |
|
|
|
|
|
|
|
; check: v10 = band v0, v1 |
|
|
|
; check: return v10 |
|
|
|
; check: v8 = band v0, v1 |
|
|
|
; check: return v8 |
|
|
|
|
|
|
|
function %extend_ineg_reduce(i64) -> i64 { |
|
|
|
block0(v0: i64): |
|
|
@ -174,8 +214,8 @@ block0(v0: i64): |
|
|
|
return v3 |
|
|
|
} |
|
|
|
|
|
|
|
; check: v6 = ineg v0 |
|
|
|
; check: return v6 |
|
|
|
; check: v5 = ineg v0 |
|
|
|
; check: return v5 |
|
|
|
|
|
|
|
function %extend_bnot_reduce(i16) -> i16 { |
|
|
|
block0(v0: i16): |
|
|
@ -185,5 +225,5 @@ block0(v0: i16): |
|
|
|
return v3 |
|
|
|
} |
|
|
|
|
|
|
|
; check: v6 = bnot v0 |
|
|
|
; check: return v6 |
|
|
|
; check: v5 = bnot v0 |
|
|
|
; check: return v5 |
|
|
|