[mono] Fix missing simd mul/div case (#81201)
authorLarry Ewing <lewing@microsoft.com>
Thu, 26 Jan 2023 15:43:28 +0000 (09:43 -0600)
committerGitHub <noreply@github.com>
Thu, 26 Jan 2023 15:43:28 +0000 (09:43 -0600)
* Test missing case

* Update src/mono/mono/mini/simd-intrinsics.c

* Update src/mono/mono/mini/simd-intrinsics.c

src/mono/mono/mini/simd-intrinsics.c

index 5875230..cad1e07 100644 (file)
@@ -309,6 +309,9 @@ emit_simd_ins_for_binary_op (MonoCompile *cfg, MonoClass *klass, MonoMethodSigna
                                                ins = emit_simd_ins (cfg, klass, OP_XBINOP_BYSCALAR, args [0]->dreg, ins->dreg);
                                                ins->inst_c0 = OP_FDIV;
                                                return ins;
+                                       } else if ((fsig->params [0]->type == MONO_TYPE_GENERICINST) && (fsig->params [1]->type == MONO_TYPE_GENERICINST)) {
+                                               instc0 = OP_FDIV;
+                                               break;
                                        } else {
                                                return NULL;
                                        }
@@ -336,6 +339,9 @@ emit_simd_ins_for_binary_op (MonoCompile *cfg, MonoClass *klass, MonoMethodSigna
                                                ins = emit_simd_ins (cfg, klass, OP_XBINOP_BYSCALAR, ins->dreg, args [1]->dreg);
                                                ins->inst_c0 = OP_FMUL;
                                                return ins;
+                                       } else if ((fsig->params [0]->type == MONO_TYPE_GENERICINST) && (fsig->params [1]->type == MONO_TYPE_GENERICINST)) {
+                                               instc0 = OP_FMUL;
+                                               break;
                                        } else {
                                                return NULL;
                                        }