|
|
@@ -385,6 +385,12 @@ emit_alu(struct ir3_context *ctx, nir_alu_instr *alu) |
|
|
|
create_cov(ctx, src[0], 32, nir_op_f2f16), |
|
|
|
16, nir_op_f2f32); |
|
|
|
break; |
|
|
|
case nir_op_f2b16: { |
|
|
|
struct ir3_instruction *zero = create_immed_typed(b, 0, TYPE_F16); |
|
|
|
dst[0] = ir3_CMPS_F(b, src[0], 0, zero, 0); |
|
|
|
dst[0]->cat2.condition = IR3_COND_NE; |
|
|
|
break; |
|
|
|
} |
|
|
|
case nir_op_f2b32: |
|
|
|
dst[0] = ir3_CMPS_F(b, src[0], 0, create_immed(b, fui(0.0)), 0); |
|
|
|
dst[0]->cat2.condition = IR3_COND_NE; |
|
|
@@ -400,6 +406,12 @@ emit_alu(struct ir3_context *ctx, nir_alu_instr *alu) |
|
|
|
case nir_op_b2i32: |
|
|
|
dst[0] = ir3_b2n(b, src[0]); |
|
|
|
break; |
|
|
|
case nir_op_i2b16: { |
|
|
|
struct ir3_instruction *zero = create_immed_typed(b, 0, TYPE_S16); |
|
|
|
dst[0] = ir3_CMPS_S(b, src[0], 0, zero, 0); |
|
|
|
dst[0]->cat2.condition = IR3_COND_NE; |
|
|
|
break; |
|
|
|
} |
|
|
|
case nir_op_i2b32: |
|
|
|
dst[0] = ir3_CMPS_S(b, src[0], 0, create_immed(b, 0), 0); |
|
|
|
dst[0]->cat2.condition = IR3_COND_NE; |