}
void
-emulate_splatw0q (OrcOpcodeExecutor *ex, int offset, int n)
+emulate_splatw3q (OrcOpcodeExecutor *ex, int offset, int n)
{
int i;
orc_union64 * ptr0;
for (i = 0; i < n; i++) {
/* 0: loadq */
var32 = ptr4[i];
- /* 1: splatw0q */
+ /* 1: splatw3q */
var33.i = ((((orc_uint64)var32.i)>>48) << 48) | ((((orc_uint64)var32.i)>>48)<<32) | ((((orc_uint64)var32.i)>>48) << 16) | ((((orc_uint64)var32.i)>>48));
/* 2: storeq */
ptr0[i] = var33;
void emulate_loadq (OrcOpcodeExecutor *ex, int i, int n);
void emulate_loadpq (OrcOpcodeExecutor *ex, int i, int n);
void emulate_storeq (OrcOpcodeExecutor *ex, int i, int n);
-void emulate_splatw0q (OrcOpcodeExecutor *ex, int i, int n);
+void emulate_splatw3q (OrcOpcodeExecutor *ex, int i, int n);
void emulate_convsbw (OrcOpcodeExecutor *ex, int i, int n);
void emulate_convubw (OrcOpcodeExecutor *ex, int i, int n);
void emulate_splatbw (OrcOpcodeExecutor *ex, int i, int n);
{ "loadq", ORC_STATIC_OPCODE_LOAD, { 8 }, { 8 }, emulate_loadq },
{ "loadpq", ORC_STATIC_OPCODE_LOAD|ORC_STATIC_OPCODE_SCALAR|ORC_STATIC_OPCODE_INVARIANT, { 8 }, { 8 }, emulate_loadpq },
{ "storeq", ORC_STATIC_OPCODE_STORE, { 8 }, { 8 }, emulate_storeq },
- { "splatw0q", 0, { 8 }, { 8 }, emulate_splatw0q },
+ { "splatw3q", 0, { 8 }, { 8 }, emulate_splatw3q },
{ "convsbw", 0, { 2 }, { 1 }, emulate_convsbw },
{ "convubw", 0, { 2 }, { 1 }, emulate_convubw },
}
static void
-c_rule_splatw0q (OrcCompiler *p, void *user, OrcInstruction *insn)
+c_rule_splatw3q (OrcCompiler *p, void *user, OrcInstruction *insn)
{
char dest[40], src[40];
orc_rule_register (rule_set, "splitwb", c_rule_splitwb, NULL);
orc_rule_register (rule_set, "splatbw", c_rule_splatbw, NULL);
orc_rule_register (rule_set, "splatbl", c_rule_splatbl, NULL);
- orc_rule_register (rule_set, "splatw0q", c_rule_splatw0q, NULL);
+ orc_rule_register (rule_set, "splatw3q", c_rule_splatw3q, NULL);
orc_rule_register (rule_set, "div255w", c_rule_div255w, NULL);
orc_rule_register (rule_set, "divluw", c_rule_divluw, NULL);
}
}
static void
-orc_neon_rule_splatw0q (OrcCompiler *p, void *user, OrcInstruction *insn)
+orc_neon_rule_splatw3q (OrcCompiler *p, void *user, OrcInstruction *insn)
{
orc_uint32 code;
int offset = 0;
REG(splatbw);
REG(splatbl);
- REG(splatw0q);
+ REG(splatw3q);
REG(div255w);
orc_rule_register (rule_set, "loadpb", neon_rule_loadpX, (void *)1);
}
static void
-sse_rule_splatw0q (OrcCompiler *p, void *user, OrcInstruction *insn)
+sse_rule_splatw3q (OrcCompiler *p, void *user, OrcInstruction *insn)
{
int src = p->vars[insn->src_args[0]].alloc;
int dest = p->vars[insn->dest_args[0]].alloc;
orc_rule_register (rule_set, "subusl", sse_rule_subusl_slow, NULL);
orc_rule_register (rule_set, "convhwb", sse_rule_convhwb, NULL);
orc_rule_register (rule_set, "convhlw", sse_rule_convhlw, NULL);
- orc_rule_register (rule_set, "splatw0q", sse_rule_splatw0q, NULL);
+ orc_rule_register (rule_set, "splatw3q", sse_rule_splatw3q, NULL);
orc_rule_register (rule_set, "splatbw", sse_rule_splatbw, NULL);
orc_rule_register (rule_set, "splatbl", sse_rule_splatbl, NULL);
orc_rule_register (rule_set, "div255w", sse_rule_div255w, NULL);
x4 convubw t1, s1
x4 convubw t2, s2
-splatw0q t2, t2
+splatw3q t2, t2
x4 mullw t1, t1, t2
x4 div255w t1, t1
x4 convwb t3, t1
#compover d1, d1, t1
x4 convubw t1, s1
x4 convubw t2, s2
-splatw0q t2, t2
+splatw3q t2, t2
x4 mullw t1, t1, t2
x4 div255w t1, t1
x4 convwb t3, t1
loadl d, d1
x4 convubw d_wide, d
x4 xorw t1, t1, 0x00ff
-splatw0q t2, t1
+splatw3q t2, t1
x4 mullw t1, d_wide, t2
x4 div255w t1, t1
x4 convwb d, t1
loadl d, d1
x4 convubw d_wide, d
x4 xorw t1, t1, 0x00ff
-splatw0q t2, t1
+splatw3q t2, t1
x4 mullw t1, d_wide, t2
x4 div255w t1, t1
x4 convwb d, t1
x4 convubw t1, s1
x4 convubw t2, s2
-splatw0q t2, t2
+splatw3q t2, t2
x4 mullw t1, t1, t2
x4 div255w t1, t1
# ORC_MULDIV_255((s),(m)), m is from dest
x4 convubw d_wide, d1
-splatw0q t2, d_wide
+splatw3q t2, d_wide
x4 mullw t1, t1, t2
x4 div255w t1, t1
x4 convwb d1, t1
x4 convubw t1, s1
# ORC_MULDIV_255((s),(m)), m is from dest
x4 convubw d_wide, d1
-splatw0q t2, d_wide
+splatw3q t2, d_wide
x4 mullw t1, t1, t2
x4 div255w t1, t1
x4 convwb d1, t1
x4 convubw t1, s1
x4 convubw t2, s2
-splatw0q t2, t2
+splatw3q t2, t2
x4 mullw t1, t1, t2
x4 div255w t1, t1
# ORC_MULDIV_255((s),(m)), m is from dest
x4 convubw d_wide, d1
-splatw0q t2, d_wide
+splatw3q t2, d_wide
x4 xorw t2, t2, 0x00ff
x4 mullw t1, t1, t2
x4 div255w t1, t1
x4 convubw t1, s1
# ORC_MULDIV_255((s),(m)), m is from dest
x4 convubw d_wide, d1
-splatw0q t2, d_wide
+splatw3q t2, d_wide
x4 xorw t2, t2, 0x00ff
x4 mullw t1, t1, t2
x4 div255w t1, t1
x4 convubw t1, s1
x4 convubw t2, s2
-splatw0q t2, t2
+splatw3q t2, t2
x4 mullw t1, t1, t2
x4 div255w t1, t1
x4 convubw d_wide, d1
-splatw0q t2, d_wide
+splatw3q t2, d_wide
x4 mullw t3, t1, t2
x4 div255w t3, t3
x4 convwb t4, t3
x4 convubw d_wide, d1
-splatw0q t2, t1
+splatw3q t2, t1
x4 xorw t2, t2, 0x00ff
x4 mullw t1, d_wide, t2
x4 div255w t1, t1
x4 convubw t1, s1
x4 convubw d_wide, d1
-splatw0q t2, d_wide
+splatw3q t2, d_wide
x4 mullw t3, t1, t2
x4 div255w t3, t3
x4 convwb t4, t3
x4 convubw d_wide, d1
-splatw0q t2, t1
+splatw3q t2, t1
x4 xorw t2, t2, 0x00ff
x4 mullw t1, d_wide, t2
x4 div255w t1, t1
x4 convubw t1, s1
x4 convubw t2, s2
-splatw0q t2, t2
+splatw3q t2, t2
x4 mullw t1, t1, t2
x4 div255w t1, t1
x4 convubw d_wide, d1
-splatw0q t2, d_wide
+splatw3q t2, d_wide
x4 xorw t2, t2, 0x00ff
x4 mullw t3, t1, t2
x4 div255w t3, t3
x4 convwb t4, t3
x4 convubw d_wide, d1
-splatw0q t2, t1
+splatw3q t2, t1
x4 xorw t2, t2, 0x00ff
x4 mullw t1, d_wide, t2
x4 div255w t1, t1
x4 convubw t1, s1
x4 convubw d_wide, d1
-splatw0q t2, d_wide
+splatw3q t2, d_wide
x4 xorw t2, t2, 0x00ff
x4 mullw t3, t1, t2
x4 div255w t3, t3
x4 convwb t4, t3
x4 convubw d_wide, d1
-splatw0q t2, t1
+splatw3q t2, t1
x4 xorw t2, t2, 0x00ff
x4 mullw t1, d_wide, t2
x4 div255w t1, t1
x4 convubw t1, s1
x4 convubw t2, s2
-#splatw0q t2, t2
+#splatw3q t2, t2
x4 mullw t1, t1, t2
x4 div255w t1, t1
x4 convwb t3, t1
x4 convubw s_wide, s1
x4 convubw m_wide, s2
-splatw0q xa, s_wide
+splatw3q xa, s_wide
x4 mullw s_wide, s_wide, m_wide
x4 div255w s_wide, s_wide
x4 convwb s, s_wide
.temp 4 s
x4 convubw s_wide, s1
-splatw0q xa, s_wide
+splatw3q xa, s_wide
x4 convwb s, s_wide
x4 copyw m_wide, xa
loadl d, d1
loadl d, d1
x4 convubw d_wide, d
x4 xorw t1, t1, 0x00ff
-splatw0q t2, t1
+splatw3q t2, t1
x4 mullw t1, d_wide, t2
x4 div255w t1, t1
x4 convwb d, t1
x4 convubw s_wide, p1
x4 convubw m_wide, s1
-splatw0q xa, s_wide
+splatw3q xa, s_wide
x4 mullw s_wide, s_wide, m_wide
x4 div255w s_wide, s_wide
x4 convwb s, s_wide