diff --git a/src/codegen/loongarch/Select.zig b/src/codegen/loongarch/Select.zig index 4b1967198cc53cf258847867e33f8aa19cae121e..68624bb44bb81dad28772e63354c5c7d8e3a303b 100644 --- a/src/codegen/loongarch/Select.zig +++ b/src/codegen/loongarch/Select.zig @@ -3779,6 +3779,8 @@ pub fn body(isel: *Select, air_body: []const Air.Inst.Index) codegen.Error!void 64 => .@"movfr2gr.d"(dst_reg, src_reg), }); try src_mat.finish(isel); + } else if ((dst_ty.isAbiInt(zcu) and src_tag == .float) or ((dst_tag == .float and src_ty.isAbiInt(zcu)))) { + try dst_vi.value.defMove(isel, ty_op.operand); } else if (dst_ty.isAbiInt(zcu) and src_tag == .array and src_ty.childType(zcu).isAbiInt(zcu)) { const dst_int_info = dst_ty.intInfo(zcu); const src_child_int_info = src_ty.childType(zcu).intInfo(zcu);