[llvm-commits] [llvm] r91378 - in /llvm/trunk: lib/CodeGen/SelectionDAG/DAGCombiner.cpp test/CodeGen/X86/setcc.ll test/CodeGen/X86/zext-shl.ll
Evan Cheng
evan.cheng at apple.com
Mon Dec 14 17:49:43 PST 2009
On Dec 14, 2009, at 5:47 PM, Chris Lattner wrote:
>
> On Dec 14, 2009, at 5:45 PM, Evan Cheng wrote:
>
>>
>> On Dec 14, 2009, at 5:00 PM, Chris Lattner wrote:
>>
>>>
>>> On Dec 14, 2009, at 4:41 PM, Evan Cheng wrote:
>>>
>>>> Author: evancheng
>>>> Date: Mon Dec 14 18:41:36 2009
>>>> New Revision: 91378
>>>>
>>>> URL: http://llvm.org/viewvc/llvm-project?rev=91378&view=rev
>>>> Log:
>>>> Propagate zest through logical shift.
>>>
>>> Is this really profitable in the general case? It seems that this should only be done if at least one of the inputs to the shift will fold away. Adding a nice "WouldFoldAZExt" predicate that would return true for zext/trunc would make sense, no?
>>
>> Are there cases where (zext (zext)) would not fold into a single zext?
>
> No, I'm worried that you're turning something like:
>
> zext(shr(call, call)) -> shr(zext(call), zext(call))
>
> which introduces two zexts and deletes one.
No. The transformation only happens when one of the shift's operand is a zext.
Evan
>
> -Chris
More information about the llvm-commits
mailing list