{"push_id":1394915846,"size":1,"distinct_size":0,"ref":"refs/heads/trunk","head":"28251d450e034f06fc52244c26ef65f64185dc59","before":"7c14c46b6cbecac10b26a50d9e7190f5771c1444","commits":[{"sha":"28251d450e034f06fc52244c26ef65f64185dc59","author":{"name":"segher","email":"0a40bbaba6c18bf84c9422b2a556ed6cbf184950@138bc75d-0d04-0410-961f-82ee72b054a4"},"message":"simplify-rtx: Transform (xor (and (xor A B) C) B) with C const\n\nmatch.pd transforms (A&C)|(B&~C) to ((A^B)&C)^B, which is fewer\noperations if C is not const (and it is not on simple tests at least,\nthis transform is done very early already).\n\nVarious processors have \"insert\" instructions that can do this, but\ncombine cannot build those from the xor-and-xor, especially it has no\nchance at all to do that if A or B or multiple instructions as well\n(on PowerPC, the rl[wd]imi instructions can do this with together with\na rotate, or a simple shift with appropriate C; other ISAs have similar\ninsns).\n\nThis patch makes RTL simplify transform (xor (and (xor A B) C) B) back\nto (ior (and A C) (and B ~C)) for constant C (and similar with A instead\nof B for that last term).\n\n\n\t* simplify-rtx.c (simplify_binary_operation_1): Simplify\n\t(xor (and (xor A B) C) B) to (ior (and A C) (and B ~C)) and\n\t(xor (and (xor A B) C) A) to (ior (and A ~C) (and B C)) if C\n\tis a const_int.\n\n\ngit-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@242031 138bc75d-0d04-0410-961f-82ee72b054a4","distinct":false,"url":"https://api.github.com/repos/kraj/gcc/commits/28251d450e034f06fc52244c26ef65f64185dc59"}]}
{"actor":{"display_login":"kraj"}}