pan/bit: Interpret BI_BITWISE

No shifting yet.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4790>
This commit is contained in:
Alyssa Rosenzweig
2020-04-28 13:49:24 -04:00
committed by Marge Bot
parent a077da6273
commit 844c3f94b5
+22 -2
View File
@@ -437,8 +437,28 @@ bit_step(struct bit_state *s, bi_instruction *ins, bool FMA)
break;
}
case BI_BITWISE:
unreachable("Unsupported op");
case BI_BITWISE: {
/* Apply inverts first */
if (ins->bitwise.src_invert[0])
srcs[0].u64 = ~srcs[0].u64;
if (ins->bitwise.src_invert[1])
srcs[1].u64 = ~srcs[1].u64;
/* TODO: Shifting */
assert(srcs[2].u32 == 0);
if (ins->op.bitwise == BI_BITWISE_AND)
dest.u64 = srcs[0].u64 & srcs[1].u64;
else if (ins->op.bitwise == BI_BITWISE_OR)
dest.u64 = srcs[0].u64 | srcs[1].u64;
else if (ins->op.bitwise == BI_BITWISE_XOR)
dest.u64 = srcs[0].u64 ^ srcs[1].u64;
else
unreachable("Unsupported op");
break;
}
case BI_CONVERT: {
/* If it exists */