pan/bi: Lower swizzles for 8-bit CSEL

With OpenCL we can generate stuff like CSEL.u32.eq r0.b0000, we need to handle
it when lowering swizzles.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22228>
This commit is contained in:
Alyssa Rosenzweig 2022-06-23 18:06:03 -04:00 committed by Marge Bot
parent 66edd030ab
commit d00d2ae701

View file

@ -168,7 +168,10 @@ lower_swizzle(bi_context *ctx, bi_instr *ins, unsigned src)
/* Lower it away */
bi_builder b = bi_init_builder(ctx, bi_before_instr(ins));
bool is_8 = (bi_opcode_props[ins->op].size == BI_SIZE_8);
bool is_8 = (bi_opcode_props[ins->op].size == BI_SIZE_8) ||
(bi_opcode_props[ins->op].size == BI_SIZE_32 &&
ins->src[src].swizzle >= BI_SWIZZLE_B0000);
bi_index orig = ins->src[src];
bi_index stripped = bi_replace_index(bi_null(), orig);
stripped.swizzle = ins->src[src].swizzle;