diff options
author | Jakub Jelinek <jakub@redhat.com> | 2020-12-06 10:55:12 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2020-12-06 10:55:12 +0100 |
commit | 9e12b8b1819342ef7efac58cf7f4ba4294abe551 (patch) | |
tree | e85728c3ca27665a12469a0206a08fd0869b6ff3 /gcc/tree-vectorizer.h | |
parent | bd0f0243869b3941a256ca0ea9c8aca141412f7e (diff) | |
download | gcc-9e12b8b1819342ef7efac58cf7f4ba4294abe551.zip gcc-9e12b8b1819342ef7efac58cf7f4ba4294abe551.tar.gz gcc-9e12b8b1819342ef7efac58cf7f4ba4294abe551.tar.bz2 |
match.pd: Improve conditional_replacement for x ? 0 : -1 [PR796232]
As mentioned in the PR, for boolean x we currently optimize
in phiopt x ? 0 : -1 into -(int)!x but it can be optimized as
(int) x - 1 which is one less operation both in GIMPLE and in x86 assembly.
This patch optimizes it in match.pd, by optimizing -(type)!x when
x has boolean range into (type)x - 1.
2020-12-06 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/96232
* match.pd (-(type)!A -> (type)A - 1): New optimization.
* gcc.dg/tree-ssa/pr96232-1.c: New test.
Diffstat (limited to 'gcc/tree-vectorizer.h')
0 files changed, 0 insertions, 0 deletions