From: Sebastian Dröge Date: Fri, 1 Oct 2010 06:46:11 +0000 (+0200) Subject: Implement mergelq for SSE X-Git-Tag: orc-0.4.10~8 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=51b0e4d1245412977425264f3e72c70081b72a88;p=platform%2Fupstream%2Forc.git Implement mergelq for SSE --- diff --git a/orc/orcrules-sse.c b/orc/orcrules-sse.c index 136bddb..07a56f9 100644 --- a/orc/orcrules-sse.c +++ b/orc/orcrules-sse.c @@ -1726,6 +1726,15 @@ sse_rule_mergewl (OrcCompiler *p, void *user, OrcInstruction *insn) } static void +sse_rule_mergelq (OrcCompiler *p, void *user, OrcInstruction *insn) +{ + int src = p->vars[insn->src_args[1]].alloc; + int dest = p->vars[insn->dest_args[0]].alloc; + + orc_sse_emit_punpckldq (p, src, dest); +} + +static void sse_rule_swapw (OrcCompiler *p, void *user, OrcInstruction *insn) { int src = p->vars[insn->src_args[0]].alloc; @@ -2694,6 +2703,7 @@ orc_compiler_sse_register_rules (OrcTarget *target) REG(select1wb); REG(mergebw); REG(mergewl); + REG(mergelq); orc_rule_register (rule_set, "copyb", sse_rule_copyx, NULL); orc_rule_register (rule_set, "copyw", sse_rule_copyx, NULL);