ifcvt.c (noce_try_sign_mask): New function to transform "x = (y < 0) ? z ...
authorRoger Sayle <roger@eyesopen.com>
Tue, 9 Mar 2004 23:15:15 +0000 (23:15 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Tue, 9 Mar 2004 23:15:15 +0000 (23:15 +0000)
commit305eeaeb7a5acd2256d075f463fe32fe80781e85
treefde015febed56df30084c4c77d4752554520bbcd
parenta4f74b5884a2cb8760d36141ff6ad43183f3088a
ifcvt.c (noce_try_sign_mask): New function to transform "x = (y < 0) ? z ...

* ifcvt.c (noce_try_sign_mask): New function to transform
"x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
(noce_process_if_block): Call noce_try_sign_mask.

* gcc.c-torture/execute/20040309-1.c: New test case.

Co-Authored-By: Andrew Pinski <pinskia@physics.uc.edu>
From-SVN: r79205
gcc/ChangeLog
gcc/ifcvt.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/20040309-1.c [new file with mode: 0644]