[llvm-commits] [llvm] r146594 - in /llvm/trunk: lib/Target/ARM/ARMInstrNEON.td test/MC/ARM/neon-vst-encoding.s

Jim Grosbach grosbach at apple.com
Wed Dec 14 13:49:24 PST 2011


Author: grosbach
Date: Wed Dec 14 15:49:24 2011
New Revision: 146594

URL: http://llvm.org/viewvc/llvm-project?rev=146594&view=rev
Log:
ARM NEON fix alignment encoding for VST2 w/ writeback.

Add tests for w/ writeback instruction parsing and encoding.

Modified:
    llvm/trunk/lib/Target/ARM/ARMInstrNEON.td
    llvm/trunk/test/MC/ARM/neon-vst-encoding.s

Modified: llvm/trunk/lib/Target/ARM/ARMInstrNEON.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMInstrNEON.td?rev=146594&r1=146593&r2=146594&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM/ARMInstrNEON.td (original)
+++ llvm/trunk/lib/Target/ARM/ARMInstrNEON.td Wed Dec 14 15:49:24 2011
@@ -1530,7 +1530,7 @@
                      "vst2", Dt, "$Vd, $Rn!",
                      "$Rn.addr = $wb", []> {
     let Rm = 0b1101; // NLdSt will assign to the right encoding bits.
-    let Inst{4} = Rn{4};
+    let Inst{5-4} = Rn{5-4};
     let DecoderMethod = "DecodeVSTInstruction";
     let AsmMatchConverter = "cvtVSTwbFixed";
   }
@@ -1538,7 +1538,7 @@
                         (ins addrmode6:$Rn, rGPR:$Rm, VdTy:$Vd), IIC_VLD1u,
                         "vst2", Dt, "$Vd, $Rn, $Rm",
                         "$Rn.addr = $wb", []> {
-    let Inst{4} = Rn{4};
+    let Inst{5-4} = Rn{5-4};
     let DecoderMethod = "DecodeVSTInstruction";
     let AsmMatchConverter = "cvtVSTwbRegister";
   }
@@ -1549,7 +1549,7 @@
                      "vst2", Dt, "$Vd, $Rn!",
                      "$Rn.addr = $wb", []> {
     let Rm = 0b1101; // NLdSt will assign to the right encoding bits.
-    let Inst{4} = Rn{4};
+    let Inst{5-4} = Rn{5-4};
     let DecoderMethod = "DecodeVSTInstruction";
     let AsmMatchConverter = "cvtVSTwbFixed";
   }
@@ -1558,7 +1558,7 @@
                         IIC_VLD1u,
                         "vst2", Dt, "$Vd, $Rn, $Rm",
                         "$Rn.addr = $wb", []> {
-    let Inst{4} = Rn{4};
+    let Inst{5-4} = Rn{5-4};
     let DecoderMethod = "DecodeVSTInstruction";
     let AsmMatchConverter = "cvtVSTwbRegister";
   }

Modified: llvm/trunk/test/MC/ARM/neon-vst-encoding.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/ARM/neon-vst-encoding.s?rev=146594&r1=146593&r2=146594&view=diff
==============================================================================
--- llvm/trunk/test/MC/ARM/neon-vst-encoding.s (original)
+++ llvm/trunk/test/MC/ARM/neon-vst-encoding.s Wed Dec 14 15:49:24 2011
@@ -37,6 +37,12 @@
 	vst2.8	{d16, d17, d18, d19}, [r0, :64]
 	vst2.16	{d16, d17, d18, d19}, [r0, :128]
 	vst2.32	{d16, d17, d18, d19}, [r0, :256]
+	vst2.8	{d16, d17}, [r0, :64]!
+	vst2.16	{q15}, [r0, :128]!
+	vst2.32	{d14, d15}, [r0]!
+	vst2.8	{d16, d17, d18, d19}, [r0, :64]!
+	vst2.16	{d18-d21}, [r0, :128]!
+	vst2.32	{q4, q5}, [r0, :256]!
 
 @ CHECK: vst2.8	{d16, d17}, [r0, :64]   @ encoding: [0x1f,0x08,0x40,0xf4]
 @ CHECK: vst2.16 {d16, d17}, [r0, :128] @ encoding: [0x6f,0x08,0x40,0xf4]
@@ -44,6 +50,12 @@
 @ CHECK: vst2.8	{d16, d17, d18, d19}, [r0, :64] @ encoding: [0x1f,0x03,0x40,0xf4]
 @ CHECK: vst2.16 {d16, d17, d18, d19}, [r0, :128] @ encoding: [0x6f,0x03,0x40,0xf4]
 @ CHECK: vst2.32 {d16, d17, d18, d19}, [r0, :256] @ encoding: [0xbf,0x03,0x40,0xf4]
+@ CHECK: vst2.8	{d16, d17}, [r0, :64]!  @ encoding: [0x1d,0x08,0x40,0xf4]
+@ CHECK: vst2.16	{d30, d31}, [r0, :128]! @ encoding: [0x6d,0xe8,0x40,0xf4]
+@ CHECK: vst2.32	{d14, d15}, [r0]!       @ encoding: [0x8d,0xe8,0x00,0xf4]
+@ CHECK: vst2.8	{d16, d17, d18, d19}, [r0, :64]! @ encoding: [0x1d,0x03,0x40,0xf4]
+@ CHECK: vst2.16	{d18, d19, d20, d21}, [r0, :128]! @ encoding: [0x6d,0x23,0x40,0xf4]
+@ CHECK: vst2.32	{d8, d9, d10, d11}, [r0, :256]! @ encoding: [0xbd,0x83,0x00,0xf4]
 
 
 @	vst3.8	{d16, d17, d18}, [r0, :64]





More information about the llvm-commits mailing list