mirror of
https://gcc.gnu.org/git/gcc.git
synced 2025-01-10 04:54:20 +08:00
builtins.c (expand_builtin_sync_operation): Fold nand to and for constants.
* builtins.c (expand_builtin_sync_operation): Fold nand to and for constants. From-SVN: r98324
This commit is contained in:
parent
a45f6936f4
commit
e2939e7513
@ -1,3 +1,8 @@
|
||||
2005-04-18 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* builtins.c (expand_builtin_sync_operation): Fold nand to and
|
||||
for constants.
|
||||
|
||||
2005-04-18 Devang Patel <dpatel@apple.com>
|
||||
|
||||
* config/rs6000/atlivec.md (mulv4si3): New pattern.
|
||||
|
@ -5255,13 +5255,20 @@ expand_builtin_sync_operation (tree arglist, enum rtx_code code, bool after,
|
||||
{
|
||||
enum machine_mode mode;
|
||||
rtx addr, val, mem;
|
||||
tree valt;
|
||||
|
||||
/* Expand the operands. */
|
||||
addr = expand_expr (TREE_VALUE (arglist), NULL, Pmode, EXPAND_SUM);
|
||||
mode = TYPE_MODE (TREE_TYPE (TREE_TYPE (TREE_VALUE (arglist))));
|
||||
|
||||
arglist = TREE_CHAIN (arglist);
|
||||
val = expand_expr (TREE_VALUE (arglist), NULL, mode, EXPAND_NORMAL);
|
||||
valt = TREE_VALUE (arglist);
|
||||
if (code == NOT && TREE_CONSTANT (valt))
|
||||
{
|
||||
valt = fold_build1 (BIT_NOT_EXPR, TREE_TYPE (valt), valt);
|
||||
code = AND;
|
||||
}
|
||||
val = expand_expr (valt, NULL, mode, EXPAND_NORMAL);
|
||||
|
||||
/* Note that we explicitly do not want any alias information for this
|
||||
memory, so that we kill all other live memories. Otherwise we don't
|
||||
|
Loading…
Reference in New Issue
Block a user