Implement sshr_imm.i8 (#687)
This commit is contained in:
@@ -375,7 +375,7 @@ for int_ty in [types.i8, types.i16]:
|
|||||||
)
|
)
|
||||||
|
|
||||||
for int_ty in [types.i8, types.i16]:
|
for int_ty in [types.i8, types.i16]:
|
||||||
for op in [ushr_imm, ishl_imm]:
|
for op in [ishl, ishl_imm, ushr, ushr_imm]:
|
||||||
widen.legalize(
|
widen.legalize(
|
||||||
a << op.bind(int_ty)(b, c),
|
a << op.bind(int_ty)(b, c),
|
||||||
Rtl(
|
Rtl(
|
||||||
@@ -384,29 +384,14 @@ for int_ty in [types.i8, types.i16]:
|
|||||||
a << ireduce.bind(int_ty)(z)
|
a << ireduce.bind(int_ty)(z)
|
||||||
))
|
))
|
||||||
|
|
||||||
widen.legalize(
|
for op in [sshr, sshr_imm]:
|
||||||
a << ishl.bind(int_ty)(b, c),
|
widen.legalize(
|
||||||
Rtl(
|
a << op.bind(int_ty)(b, c),
|
||||||
x << uextend.i32(b),
|
Rtl(
|
||||||
z << ishl.i32(x, c),
|
x << sextend.i32(b),
|
||||||
a << ireduce.bind(int_ty)(z)
|
z << op.i32(x, c),
|
||||||
))
|
a << ireduce.bind(int_ty)(z)
|
||||||
|
))
|
||||||
widen.legalize(
|
|
||||||
a << ushr.bind(int_ty)(b, c),
|
|
||||||
Rtl(
|
|
||||||
x << uextend.i32(b),
|
|
||||||
z << ushr.i32(x, c),
|
|
||||||
a << ireduce.bind(int_ty)(z)
|
|
||||||
))
|
|
||||||
|
|
||||||
widen.legalize(
|
|
||||||
a << sshr.bind(int_ty)(b, c),
|
|
||||||
Rtl(
|
|
||||||
x << sextend.i32(b),
|
|
||||||
z << sshr.i32(x, c),
|
|
||||||
a << ireduce.bind(int_ty)(z)
|
|
||||||
))
|
|
||||||
|
|
||||||
for w_cc in [
|
for w_cc in [
|
||||||
intcc.eq, intcc.ne, intcc.ugt, intcc.ult, intcc.uge, intcc.ule
|
intcc.eq, intcc.ne, intcc.ugt, intcc.ult, intcc.uge, intcc.ule
|
||||||
|
|||||||
Reference in New Issue
Block a user