summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2016-12-06 23:18:06 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2016-12-06 23:18:06 +0000
commit269ffdac4e354b58cb627a45a9ffe01fb967004a (patch)
tree6271d413ae025608e072a43920a832acfb4c9a4a /llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
parentd0b3c6c8e6cebed16dbe7a28084786ef08f8f3bb (diff)
downloadbcm5719-llvm-269ffdac4e354b58cb627a45a9ffe01fb967004a.tar.gz
bcm5719-llvm-269ffdac4e354b58cb627a45a9ffe01fb967004a.zip
AMDGPU: Fix crash on i16 constant expression
llvm-svn: 288861
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp')
-rw-r--r--llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp b/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
index b427de1d9da..2e8db08830e 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
@@ -146,9 +146,10 @@ public:
Value *AMDGPUCodeGenPrepare::copyFlags(
const BinaryOperator &I, Value *V) const {
- assert(isa<BinaryOperator>(V) && "V must be binary operation");
+ BinaryOperator *BinOp = dyn_cast<BinaryOperator>(V);
+ if (!BinOp) // Possibly constant expression.
+ return V;
- BinaryOperator *BinOp = cast<BinaryOperator>(V);
if (isa<OverflowingBinaryOperator>(BinOp)) {
BinOp->setHasNoSignedWrap(I.hasNoSignedWrap());
BinOp->setHasNoUnsignedWrap(I.hasNoUnsignedWrap());
OpenPOWER on IntegriCloud