Commit 250494f7 authored by Topi Pohjolainen's avatar Topi Pohjolainen
Browse files

i965/blorp: wrap emission of if-equal-assignment


Signed-off-by: default avatarTopi Pohjolainen <topi.pohjolainen@intel.com>
Reviewed-by: default avatarPaul Berry <stereotype441@gmail.com>
parent 9e9617f7
...@@ -1682,34 +1682,16 @@ brw_blorp_blit_program::manual_blend_bilinear(unsigned num_samples) ...@@ -1682,34 +1682,16 @@ brw_blorp_blit_program::manual_blend_bilinear(unsigned num_samples)
brw_IF(&func, BRW_EXECUTE_16); brw_IF(&func, BRW_EXECUTE_16);
{ {
brw_MOV(&func, vec16(t2), brw_imm_d(5)); brw_MOV(&func, vec16(t2), brw_imm_d(5));
brw_CMP(&func, vec16(brw_null_reg()), BRW_CONDITIONAL_EQ, emit_if_eq_mov(S, 1, vec16(t2), 2);
S, brw_imm_d(1)); emit_if_eq_mov(S, 2, vec16(t2), 4);
brw_MOV(&func, vec16(t2), brw_imm_d(2)); emit_if_eq_mov(S, 3, vec16(t2), 6);
brw_set_predicate_control(&func, BRW_PREDICATE_NONE);
brw_CMP(&func, vec16(brw_null_reg()), BRW_CONDITIONAL_EQ,
S, brw_imm_d(2));
brw_MOV(&func, vec16(t2), brw_imm_d(4));
brw_set_predicate_control(&func, BRW_PREDICATE_NONE);
brw_CMP(&func, vec16(brw_null_reg()), BRW_CONDITIONAL_EQ,
S, brw_imm_d(3));
brw_MOV(&func, vec16(t2), brw_imm_d(6));
brw_set_predicate_control(&func, BRW_PREDICATE_NONE);
} }
brw_ELSE(&func); brw_ELSE(&func);
{ {
brw_MOV(&func, vec16(t2), brw_imm_d(0)); brw_MOV(&func, vec16(t2), brw_imm_d(0));
brw_CMP(&func, vec16(brw_null_reg()), BRW_CONDITIONAL_EQ, emit_if_eq_mov(S, 5, vec16(t2), 3);
S, brw_imm_d(5)); emit_if_eq_mov(S, 6, vec16(t2), 7);
brw_MOV(&func, vec16(t2), brw_imm_d(3)); emit_if_eq_mov(S, 7, vec16(t2), 1);
brw_set_predicate_control(&func, BRW_PREDICATE_NONE);
brw_CMP(&func, vec16(brw_null_reg()), BRW_CONDITIONAL_EQ,
S, brw_imm_d(6));
brw_MOV(&func, vec16(t2), brw_imm_d(7));
brw_set_predicate_control(&func, BRW_PREDICATE_NONE);
brw_CMP(&func, vec16(brw_null_reg()), BRW_CONDITIONAL_EQ,
S, brw_imm_d(7));
brw_MOV(&func, vec16(t2), brw_imm_d(1));
brw_set_predicate_control(&func, BRW_PREDICATE_NONE);
} }
brw_ENDIF(&func); brw_ENDIF(&func);
brw_MOV(&func, vec16(S), t2); brw_MOV(&func, vec16(S), t2);
......
...@@ -68,6 +68,12 @@ protected: ...@@ -68,6 +68,12 @@ protected:
brw_set_predicate_control(&func, BRW_PREDICATE_NONE); brw_set_predicate_control(&func, BRW_PREDICATE_NONE);
} }
inline void emit_if_eq_mov(const struct brw_reg &x, unsigned y,
const struct brw_reg &dst, unsigned src)
{
emit_cond_mov(x, brw_imm_d(y), BRW_CONDITIONAL_EQ, dst, brw_imm_d(src));
}
void *mem_ctx; void *mem_ctx;
struct brw_compile func; struct brw_compile func;
}; };
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment