diff --git a/src/CodeGen_LLVM.cpp b/src/CodeGen_LLVM.cpp index a8853eba02c5..ad2914b8f9b9 100644 --- a/src/CodeGen_LLVM.cpp +++ b/src/CodeGen_LLVM.cpp @@ -1873,7 +1873,11 @@ void CodeGen_LLVM::visit(const Not *op) { } void CodeGen_LLVM::visit(const Select *op) { - Value *cmp = codegen(op->condition); + Expr cond = op->condition; + if (const Broadcast *bc = cond.as()) { + cond = bc->value; + } + Value *cmp = codegen(cond); Value *a = codegen(op->true_value); Value *b = codegen(op->false_value); if (a->getType()->isVectorTy()) {