[all-commits] [llvm/llvm-project] 4ef22f: [InstCombine] Simplify select if it combinated and...
hanbeom via All-commits
all-commits at lists.llvm.org
Tue Apr 2 23:29:31 PDT 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 4ef22fce8208b9fc08da60c5e4f014ca09811b96
https://github.com/llvm/llvm-project/commit/4ef22fce8208b9fc08da60c5e4f014ca09811b96
Author: hanbeom <kese111 at gmail.com>
Date: 2024-04-03 (Wed, 03 Apr 2024)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
M llvm/test/Transforms/InstCombine/select.ll
Log Message:
-----------
[InstCombine] Simplify select if it combinated and/or/xor (#73362)
`and/or/xor` operations can each be changed to sum of logical
operations including operators other than themselves.
`x&y -> (x|y) ^ (x^y)`
`x|y -> (x&y) | (x^y)`
`x^y -> (x|y) ^ (x&y)`
if left of condition of `SelectInst` is `and/or/xor` logical
operation and right is equal to `0, -1`, or a `constant`, and
if `TrueVal` consist of `and/or/xor` logical operation then we
can optimize this case.
This patch implements this combination.
Proof: https://alive2.llvm.org/ce/z/WW8iRR
Fixes https://github.com/llvm/llvm-project/issues/71792.
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list