diff --git a/cranelift/filetests/isa/x86/legalize-bint-i8.clif b/cranelift/filetests/isa/x86/legalize-bint-i8.clif new file mode 100644 index 0000000000..b2684ae105 --- /dev/null +++ b/cranelift/filetests/isa/x86/legalize-bint-i8.clif @@ -0,0 +1,10 @@ +test compile + +target x86_64 + +function u0:0() -> i8 fast { +ebb0: + v14 = bconst.b1 false + v15 = bint.i8 v14 + return v15 +} diff --git a/lib/codegen/meta-python/base/legalize.py b/lib/codegen/meta-python/base/legalize.py index c63dde9289..cf66074809 100644 --- a/lib/codegen/meta-python/base/legalize.py +++ b/lib/codegen/meta-python/base/legalize.py @@ -257,6 +257,15 @@ for int_ty in [types.i8, types.i16]: ) ) +for int_ty in [types.i8, types.i16]: + widen.legalize( + a << insts.bint.bind(int_ty)(b), + Rtl( + x << insts.bint.i32(b), + a << ireduce.bind(int_ty)(x) + ) + ) + # Expand integer operations with carry for RISC architectures that don't have # the flags. expand.legalize(