From 345b91f0fd2b8dab37e64fe015d420755a975910 Mon Sep 17 00:00:00 2001 From: Jeffrey Charles Date: Fri, 14 Feb 2025 16:27:44 -0500 Subject: [PATCH] Winch: Fix i8x16.max_u to use unsigned instruction (#10236) --- tests/disas/winch/x64/i8x16/max/max_u.wat | 6 +++--- winch/codegen/src/visitor.rs | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/disas/winch/x64/i8x16/max/max_u.wat b/tests/disas/winch/x64/i8x16/max/max_u.wat index d4f170b7f384..19e191adf9f7 100644 --- a/tests/disas/winch/x64/i8x16/max/max_u.wat +++ b/tests/disas/winch/x64/i8x16/max/max_u.wat @@ -17,7 +17,7 @@ ;; movq 0x10(%r11), %r11 ;; addq $0x30, %r11 ;; cmpq %rsp, %r11 -;; ja 0x52 +;; ja 0x51 ;; 1c: movq %rdi, %r14 ;; subq $0x30, %rsp ;; movq %rdi, 0x28(%rsp) @@ -26,9 +26,9 @@ ;; movdqu %xmm1, (%rsp) ;; movdqu (%rsp), %xmm0 ;; movdqu 0x10(%rsp), %xmm1 -;; vpmaxsb %xmm1, %xmm0, %xmm1 +;; vpmaxub %xmm1, %xmm0, %xmm1 ;; movdqa %xmm1, %xmm0 ;; addq $0x30, %rsp ;; popq %rbp ;; retq -;; 52: ud2 +;; 51: ud2 diff --git a/winch/codegen/src/visitor.rs b/winch/codegen/src/visitor.rs index 693bb40f1d66..c8b0f31dc7c5 100644 --- a/winch/codegen/src/visitor.rs +++ b/winch/codegen/src/visitor.rs @@ -4280,7 +4280,7 @@ where fn visit_i8x16_max_u(&mut self) -> Self::Output { self.context .binop(self.masm, OperandSize::S8, |masm, dst, src, size| { - masm.v128_max(src, dst, writable!(dst), size, MaxKind::Signed)?; + masm.v128_max(src, dst, writable!(dst), size, MaxKind::Unsigned)?; Ok(TypedReg::v128(dst)) }) }