Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 22 additions & 14 deletions src/mono/mono/mini/simd-intrinsics.c
Original file line number Diff line number Diff line change
Expand Up @@ -6717,21 +6717,29 @@ mono_emit_common_intrinsics (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSi
static gboolean
decompose_vtype_opt_uses_simd_intrinsics (MonoCompile *cfg, MonoInst *ins)
{
if (cfg->uses_simd_intrinsics)
return TRUE;
switch (ins->opcode) {
case OP_XCALL:
case OP_XCALL_REG:
case OP_XCALL_MEMBASE:
return FALSE;
}

if (cfg->uses_simd_intrinsics)
return TRUE;

switch (ins->opcode) {
case OP_XMOVE:
case OP_XZERO:
case OP_XPHI:
case OP_LOADX_MEMBASE:
case OP_LOADX_ALIGNED_MEMBASE:
case OP_STOREX_MEMBASE:
case OP_STOREX_ALIGNED_MEMBASE_REG:
return TRUE;
default:
return FALSE;
}

switch (ins->opcode) {
case OP_XMOVE:
case OP_XZERO:
case OP_XPHI:
case OP_LOADX_MEMBASE:
case OP_LOADX_ALIGNED_MEMBASE:
case OP_STOREX_MEMBASE:
case OP_STOREX_ALIGNED_MEMBASE_REG:
return TRUE;
default:
return FALSE;
}
}

static void
Expand Down
Loading