<div dir="ltr">Hello LLVM Developers,<div><br></div><div>I am working on an architecture which have one bit shift operation if barrel shiftier hardware is not present in such cases some DAGCombine optimizations reduces performance of certain benchmarks upto 5% for example consider follwing optimization:</div><div><div style="color:rgb(0,0,0);font-family:consolas,"courier new",monospace;font-size:14px;line-height:19px;white-space:pre"><span style="color:rgb(0,142,0)">fold (select_cc seteq (and x, y), 0, 0, A) -> (and (shr (shl x)) A)</span></div></div><div>Here it introduce 2 shift operations and when barrel shiftier is not present these shifts will be converted to loops thus making it worst. I am sure there few architectures which have similar features. So how to disable these kind of optimizations in DAGCombine particularly when I want build and use LLVM for more than one target ?</div><div><br></div><div>Sincerely,</div><div>Vivek</div></div>