Projects
openEuler:24.03:SP1:Everything
gcc
_service:tar_scm:0300-Remove-erroneous-pattern-...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:tar_scm:0300-Remove-erroneous-pattern-from-gimple-ifcvt.patch of Package gcc
From 91ef8899a80e493042fd2687ad89064c9f90cf17 Mon Sep 17 00:00:00 2001 From: Pronin Alexander <pronin.alexander@huawei.com> Date: Thu, 31 Oct 2024 16:14:34 +0800 Subject: [PATCH 3/6] Remove erroneous pattern from gimple ifcvt Signed-off-by: Pronin Alexander <pronin.alexander@huawei.com> --- gcc/match.pd | 2 +- gcc/testsuite/gcc.dg/ifcvt-gimple-1.c | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.dg/ifcvt-gimple-1.c diff --git a/gcc/match.pd b/gcc/match.pd index 8f41c292f..2dd6581d1 100644 --- a/gcc/match.pd +++ b/gcc/match.pd @@ -4276,7 +4276,7 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) ) (if (flag_if_conversion_gimple) - (for simple_op (plus minus bit_and bit_ior bit_xor) + (for simple_op (plus minus bit_ior bit_xor) (simplify (cond @0 (simple_op @1 INTEGER_CST@2) @1) (switch diff --git a/gcc/testsuite/gcc.dg/ifcvt-gimple-1.c b/gcc/testsuite/gcc.dg/ifcvt-gimple-1.c new file mode 100644 index 000000000..381a4ad51 --- /dev/null +++ b/gcc/testsuite/gcc.dg/ifcvt-gimple-1.c @@ -0,0 +1,21 @@ +/* { dg-do run } */ +/* { dg-options "-O2 -fno-inline -fif-conversion-gimple" } */ + +#include <stdlib.h> + +void foo(int a, int *p) { + *p = a; +} + +void verify (int a) { + if (a != 3) + abort (); +} + +int main() { + int a = 0; + foo (3, &a); + int tmp = (a > 7) ? a & 1 : a; + verify (tmp); + return 0; +} -- 2.33.0
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2