[InstCombine] Fold zero check followed by decrement to usub.sat
authorJamie Hill-Daniel <jamie@hill-daniel.co.uk>
Mon, 9 Jan 2023 13:21:12 +0000 (14:21 +0100)
committerNikita Popov <npopov@redhat.com>
Mon, 9 Jan 2023 13:22:25 +0000 (14:22 +0100)
commit6b9317f52a66318a57a216da2e5e4890ef2aef7b
treed4ea912435c8c6826b840337a212eb8f7c572d1e
parent8f4795ef13738715ad44052a5e993cdad891474a
[InstCombine] Fold zero check followed by decrement to usub.sat

Fold (a == 0) : 0 ? a - 1 into usub.sat(a, 1).

Differential Revision: https://reviews.llvm.org/D140798
llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
llvm/test/Transforms/InstCombine/saturating-add-sub.ll
llvm/test/Transforms/InstCombine/unsigned_saturated_sub.ll
llvm/test/Transforms/PhaseOrdering/pr44461-br-to-switch-rotate.ll