[llvm-dev] Lowering Select to Two Predicated Movs
Dilan Manatunga via llvm-dev
llvm-dev at lists.llvm.org
Fri Jul 7 12:10:43 PDT 2017
My bad for not looking further. I'm still somewhat confused though. MOVCCr
gets expanded in the ARMExpandPseudoInsts pass, and it still seems only a
case of one instruction replacing the other.
My worry of emitting two instructions, is that a dead code pass will
eliminate the first instruction cause it thinks the second instruction is
defining the same register.
On Fri, Jul 7, 2017 at 11:20 AM Friedman, Eli <efriedma at codeaurora.org>
> On 7/7/2017 11:12 AM, Dilan Manatunga via llvm-dev wrote:
> > Hi,
> > I was wondering what would be the best way to lower a select operation
> > two predicated movs. I looked through the ARM, MIPS, and NVPTX
> > backends and they all seem to lower a select to some sort of
> > conditional move or native select operation.
> ARM lowers a select to a predicated mov. MOVCCr is a pseudo-instruction
> which gets expanded after instruction selection.
> Employee of Qualcomm Innovation Center, Inc.
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux
> Foundation Collaborative Project
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev