[llvm-commits] [llvm] r150433 - /llvm/trunk/lib/Target/ARM/ARMInstrNEON.td

Jakob Stoklund Olesen stoklund at 2pi.dk
Mon Feb 13 15:58:17 PST 2012


On Feb 13, 2012, at 3:37 PM, Lang Hames <lhames at gmail.com> wrote:

> Author: lhames
> Date: Mon Feb 13 17:37:19 2012
> New Revision: 150433
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=150433&view=rev
> Log:
> Make operands for VSWP read-modify-write.
> 
> Modified:
>    llvm/trunk/lib/Target/ARM/ARMInstrNEON.td
> 
> Modified: llvm/trunk/lib/Target/ARM/ARMInstrNEON.td
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMInstrNEON.td?rev=150433&r1=150432&r2=150433&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/ARM/ARMInstrNEON.td (original)
> +++ llvm/trunk/lib/Target/ARM/ARMInstrNEON.td Mon Feb 13 17:37:19 2012
> @@ -4869,11 +4869,13 @@
> 
> // Vector Swap
> def  VSWPd    : N2VX<0b11, 0b11, 0b00, 0b10, 0b00000, 0, 0,
> -                     (outs DPR:$Vd), (ins DPR:$Vm), NoItinerary,
> -                     "vswp", "$Vd, $Vm", "", []>;
> +                     (outs DPR:$Vd, DPR:$Vd1), (ins DPR:$Vm, DPR:$Vm1),
> +                     NoItinerary, "vswp", "$Vd, $Vm", "$Vm = $Vd1, $Vm1 = $Vd",
> +                     []>;
> def  VSWPq    : N2VX<0b11, 0b11, 0b00, 0b10, 0b00000, 1, 0,
> -                     (outs QPR:$Vd), (ins QPR:$Vm), NoItinerary,
> -                     "vswp", "$Vd, $Vm", "", []>;
> +                     (outs QPR:$Vd, QPR:$Vd1), (ins QPR:$Vm, QPR:$Vm1),
> +                     NoItinerary, "vswp", "$Vd, $Vm", "$Vm = $Vd1, $Vm1 = $Vd",
> +                     []>;

Hi Lang,

You shouldn't swap the operands in the constraints. That makes the instruction unnecessary!

/jakob




More information about the llvm-commits mailing list