aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorKewen Lin <linkw@linux.ibm.com>2024-07-02 02:13:35 -0500
committerKewen Lin <linkw@gcc.gnu.org>2024-07-02 02:13:35 -0500
commit56670281c6db19d75c7b63e38971ab84681b245c (patch)
tree02d4cf5dd9df985a9da24e9c47669adbbb4fc518 /gcc/ada
parent0b4fd672bf07e3bf8142b01125b4f8d2f14b1851 (diff)
downloadgcc-56670281c6db19d75c7b63e38971ab84681b245c.zip
gcc-56670281c6db19d75c7b63e38971ab84681b245c.tar.gz
gcc-56670281c6db19d75c7b63e38971ab84681b245c.tar.bz2
isel: Fold more in gimple_expand_vec_cond_expr [PR115659]
As PR115659 shows, assuming c = x CMP y, there are some folding chances for patterns r = c ? -1/z : z/0. For r = c ? -1 : z, it can be folded into: - r = c | z (with ior_optab supported) - or r = c ? c : z while for r = c ? z : 0, it can be foled into: - r = c & z (with and_optab supported) - or r = c ? z : c This patch is to teach ISEL to take care of them and also remove the redundant gsi_replace as the caller of function gimple_expand_vec_cond_expr will handle it. PR tree-optimization/115659 gcc/ChangeLog: * gimple-isel.cc (gimple_expand_vec_cond_expr): Add more foldings for patterns x CMP y ? -1 : z and x CMP y ? z : 0.
Diffstat (limited to 'gcc/ada')
0 files changed, 0 insertions, 0 deletions