1
Fork 0

Auto merge of #50137 - nox:rm-bool-cmp-hack, r=eddyb

Remove hack around comparisons of i1 values (fixes #40980)

The regression test still passes without that 2 years old hack. The underlying
LLVM bug has probably been fixed upstream since then.
This commit is contained in:
bors 2018-04-27 18:53:16 +00:00
commit a9975254ee

View file

@ -536,7 +536,6 @@ impl<'a, 'tcx> FunctionCx<'a, 'tcx> {
let is_float = input_ty.is_fp();
let is_signed = input_ty.is_signed();
let is_nil = input_ty.is_nil();
let is_bool = input_ty.is_bool();
match op {
mir::BinOp::Add => if is_float {
bx.fadd(lhs, rhs)
@ -586,15 +585,6 @@ impl<'a, 'tcx> FunctionCx<'a, 'tcx> {
lhs, rhs
)
} else {
let (lhs, rhs) = if is_bool {
// FIXME(#36856) -- extend the bools into `i8` because
// LLVM's i1 comparisons are broken.
(bx.zext(lhs, Type::i8(bx.cx)),
bx.zext(rhs, Type::i8(bx.cx)))
} else {
(lhs, rhs)
};
bx.icmp(
base::bin_op_to_icmp_predicate(op.to_hir_binop(), is_signed),
lhs, rhs