diff --git a/test/codegen/arithmetic.go b/test/codegen/arithmetic.go
index 879aaf285cdeb3d15004c9fbb3f2445fe44af387..b1cdef6eee32fc8ad5b0c446763a850d60714dd8 100644
--- a/test/codegen/arithmetic.go
+++ b/test/codegen/arithmetic.go
@@ -227,3 +227,16 @@ func MULA(a, b, c uint32) (uint32, uint32, uint32) {
 	r2 := b*64 + c
 	return r0, r1, r2
 }
+
+func MULS(a, b, c uint32) (uint32, uint32, uint32) {
+	// arm/7:`MULS`,-`MUL\s`
+	// arm64:`MSUBW`,-`MULW`
+	r0 := c - a*b
+	// arm/7:`MULS`-`MUL\s`
+	// arm64:`MSUBW`,-`MULW`
+	r1 := a - c*79
+	// arm/7:`SUB`,-`MULS`-`MUL\s`
+	// arm64:`SUB`,-`MSUBW`,-`MULW`
+	r2 := c - b*64
+	return r0, r1, r2
+}