From 8e70258b18ba35c5940dc8fa757b5bfb2ffb51d4 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Mon, 4 Jul 2022 12:55:42 +0200 Subject: [PATCH] [AMDGPUCodeGenPrepare] Check result of ConstantFoldBinaryOpOperands() This function will become fallible once we don't support constant expressions for all binops, so make sure to check the result. --- llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp b/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp index 94d7844..a8108b1 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp @@ -626,13 +626,13 @@ bool AMDGPUCodeGenPrepare::foldBinOpIntoSelect(BinaryOperator &BO) const { Constant *FoldedT = SelOpNo ? ConstantFoldBinaryOpOperands(BO.getOpcode(), CBO, CT, *DL) : ConstantFoldBinaryOpOperands(BO.getOpcode(), CT, CBO, *DL); - if (isa(FoldedT)) + if (!FoldedT || isa(FoldedT)) return false; Constant *FoldedF = SelOpNo ? ConstantFoldBinaryOpOperands(BO.getOpcode(), CBO, CF, *DL) : ConstantFoldBinaryOpOperands(BO.getOpcode(), CF, CBO, *DL); - if (isa(FoldedF)) + if (!FoldedF || isa(FoldedF)) return false; IRBuilder<> Builder(&BO); -- 2.7.4