summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenFunction.h
diff options
context:
space:
mode:
authorBjorn Pettersson <bjorn.a.pettersson@ericsson.com>2019-09-07 12:16:23 +0000
committerBjorn Pettersson <bjorn.a.pettersson@ericsson.com>2019-09-07 12:16:23 +0000
commitd065c811649f0d0df5429741a9a3dd643e88a9fe (patch)
tree3e99e0e9a83ebaf1d1eed71659a69ffaebedb96d /clang/lib/CodeGen/CodeGenFunction.h
parent5e331e4ce85ad37dca45739846c2a801f06ab573 (diff)
downloadbcm5719-llvm-d065c811649f0d0df5429741a9a3dd643e88a9fe.tar.gz
bcm5719-llvm-d065c811649f0d0df5429741a9a3dd643e88a9fe.zip
[CodeGen] Handle SMULFIXSAT with scale zero in TargetLowering::expandFixedPointMul
Summary: Normally TargetLowering::expandFixedPointMul would handle SMULFIXSAT with scale zero by using an SMULO to compute the product and determine if saturation is needed (if overflow happened). But if SMULO isn't custom/legal it falls through and uses the same technique, using MULHS/SMUL_LOHI, as used for non-zero scales. Problem was that when checking for overflow (handling saturation) when not using MULO we did not expect to find a zero scale. So we ended up in an assertion when doing APInt::getLowBitsSet(VTSize, Scale - 1) This patch fixes the problem by adding a new special case for how saturation is computed when scale is zero. Reviewers: RKSimon, bevinh, leonardchan, spatel Reviewed By: RKSimon Subscribers: wuzish, nemanjai, hiraditya, MaskRay, jsji, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D67071 llvm-svn: 371309
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.h')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud