diff --git a/cranelift/codegen/meta-python/isa/x86/encodings.py b/cranelift/codegen/meta-python/isa/x86/encodings.py index 4ae37c48a2..051b312167 100644 --- a/cranelift/codegen/meta-python/isa/x86/encodings.py +++ b/cranelift/codegen/meta-python/isa/x86/encodings.py @@ -631,7 +631,7 @@ X86_64.enc(base.uextend.i32.i16, *r.urm_noflags(0x0f, 0xb7)) # movzbq, encoded as movzbl because it's equivalent and shorter X86_64.enc(base.uextend.i64.i8, *r.urm_noflags.rex(0x0f, 0xb6)) -X86_64.enc(base.uextend.i64.i8, *r.urm_noflags(0x0f, 0xb6)) +X86_64.enc(base.uextend.i64.i8, *r.urm_noflags_abcd(0x0f, 0xb6)) # movzwq, encoded as movzwl because it's equivalent and shorter X86_64.enc(base.uextend.i64.i16, *r.urm_noflags.rex(0x0f, 0xb7)) diff --git a/cranelift/filetests/filetests/isa/x86/shrink.clif b/cranelift/filetests/filetests/isa/x86/shrink.clif index 1d1dbfde31..f0d78af226 100644 --- a/cranelift/filetests/filetests/isa/x86/shrink.clif +++ b/cranelift/filetests/filetests/isa/x86/shrink.clif @@ -26,3 +26,15 @@ ebb0(v0: i32 [ %r8 ]): [-,%r8] v2 = isub v0, v1 ; bin: 41 29 c8 return v2 } + +function %test_not_shrinking_i8() { +ebb0: +[-,%rsi] v1 = iconst.i8 1 + ; asm: movsbl %sil,%esi +[-,%rsi] v2 = sextend.i32 v1 ; bin: 40 0f be f6 + ; asm: movzbl %sil,%esi +[-,%rsi] v3 = uextend.i32 v1 ; bin: 40 0f b6 f6 + ; asm: movzbl %sil,%esi +[-,%rsi] v4 = uextend.i64 v1 ; bin: 40 0f b6 f6 + trap user0 +}