From 3dac89d4b8cce2cf92304d6b3a8226bccca22875 Mon Sep 17 00:00:00 2001 From: Andrew Adams Date: Thu, 13 Feb 2025 10:06:52 -0800 Subject: [PATCH] scalarize select condition for LLVM where possible --- src/CodeGen_LLVM.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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()) {