static inline nir_ssa_def *
nir_i2b(nir_builder *b, nir_ssa_def *src)
{
- return nir_type_convert(b, src, nir_type_int, nir_type_bool1);
+ return nir_ine(b, src, nir_imm_intN_t(b, 0, src->bit_size));
}
static inline nir_ssa_def *
ASSERT_EQ(deref->deref_type, nir_deref_type_var);
ASSERT_EQ(deref->var, var);
- ASSERT_TRUE(test_alu(loads[0x1]->src.ssa->parent_instr, nir_op_i2b1));
- ASSERT_TRUE(test_alu(loads[0x2]->src.ssa->parent_instr, nir_op_i2b1));
+ /* The loaded value is converted to Boolean by (loaded != 0). */
+ ASSERT_TRUE(test_alu(loads[0x1]->src.ssa->parent_instr, nir_op_ine));
+ ASSERT_TRUE(test_alu(loads[0x2]->src.ssa->parent_instr, nir_op_ine));
ASSERT_TRUE(test_alu_def(loads[0x1]->src.ssa->parent_instr, 0, &load->dest.ssa, 0));
ASSERT_TRUE(test_alu_def(loads[0x2]->src.ssa->parent_instr, 0, &load->dest.ssa, 1));
}
ASSERT_EQ(deref->deref_type, nir_deref_type_var);
ASSERT_EQ(deref->var, var);
- ASSERT_TRUE(test_alu(loads[0x1]->src.ssa->parent_instr, nir_op_i2b1));
+ /* The loaded value is converted to Boolean by (loaded != 0). */
+ ASSERT_TRUE(test_alu(loads[0x1]->src.ssa->parent_instr, nir_op_ine));
ASSERT_TRUE(test_alu_def(loads[0x1]->src.ssa->parent_instr, 0, &load->dest.ssa, 0));
EXPECT_INSTR_SWIZZLES(movs[0x2], load, "y");