ARM VTBX (one register) assembly parsing and encoding.
authorJim Grosbach <grosbach@apple.com>
Thu, 20 Oct 2011 14:48:50 +0000 (14:48 +0000)
committerJim Grosbach <grosbach@apple.com>
Thu, 20 Oct 2011 14:48:50 +0000 (14:48 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142581 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/ARMInstrNEON.td
test/MC/ARM/neon-table-encoding.s

index 412b3ca5f93d86d38d852268cf70acc282e5968f..7187ab0bd3b7279c43ce1de8ebebaeb381cd79e9 100644 (file)
@@ -4906,10 +4906,10 @@ def  VTBL4Pseudo
 //   VTBX     : Vector Table Extension
 def  VTBX1
   : N3V<1,1,0b11,0b1000,1,0, (outs DPR:$Vd),
-        (ins DPR:$orig, DPR:$Vn, DPR:$Vm), NVTBLFrm, IIC_VTBX1,
-        "vtbx", "8", "$Vd, \\{$Vn\\}, $Vm", "$orig = $Vd",
+        (ins DPR:$orig, VecListOneD:$Vn, DPR:$Vm), NVTBLFrm, IIC_VTBX1,
+        "vtbx", "8", "$Vd, $Vn, $Vm", "$orig = $Vd",
         [(set DPR:$Vd, (v8i8 (int_arm_neon_vtbx1
-                               DPR:$orig, DPR:$Vn, DPR:$Vm)))]>;
+                               DPR:$orig, VecListOneD:$Vn, DPR:$Vm)))]>;
 let hasExtraSrcRegAllocReq = 1 in {
 def  VTBX2
   : N3V<1,1,0b11,0b1001,1,0, (outs DPR:$Vd),
index 31454c13a46596827d6d054dbeb29cd2528cbf94..0b3fe40e4801de5f4c19fae781c60c63ae580374 100644 (file)
@@ -1,23 +1,22 @@
 @ RUN: llvm-mc -mcpu=cortex-a8 -triple arm-unknown-unknown -show-encoding < %s | FileCheck %s
-@ XFAIL: *
 
        vtbl.8  d16, {d17}, d16
-       vtbl.8  d16, {d16, d17}, d18
-       vtbl.8  d16, {d16, d17, d18}, d20
-       vtbl.8  d16, {d16, d17, d18, d19}, d20
+@      vtbl.8  d16, {d16, d17}, d18
+@      vtbl.8  d16, {d16, d17, d18}, d20
+@      vtbl.8  d16, {d16, d17, d18, d19}, d20
 
-@ CHECK: vtbl.8        d16, {d16, d17}, d18    @ encoding: [0xa2,0x09,0xf0,0xf3]
 @ CHECK: vtbl.8        d16, {d17}, d16         @ encoding: [0xa0,0x08,0xf1,0xf3]
-@ CHECK: vtbl.8        d16, {d16, d17, d18}, d20 @ encoding: [0xa4,0x0a,0xf0,0xf3]
-@ CHECK: vtbl.8        d16, {d16, d17, d18, d19}, d20 @ encoding: [0xa4,0x0b,0xf0,0xf3]
+@ FIXME: vtbl.8        d16, {d16, d17}, d18    @ encoding: [0xa2,0x09,0xf0,0xf3]
+@ FIXME: vtbl.8        d16, {d16, d17, d18}, d20 @ encoding: [0xa4,0x0a,0xf0,0xf3]
+@ FIXME: vtbl.8        d16, {d16, d17, d18, d19}, d20 @ encoding: [0xa4,0x0b,0xf0,0xf3]
 
 
        vtbx.8  d18, {d16}, d17
-       vtbx.8  d19, {d16, d17}, d18
-       vtbx.8  d20, {d16, d17, d18}, d21
-       vtbx.8  d20, {d16, d17, d18, d19}, d21
+@      vtbx.8  d19, {d16, d17}, d18
+@      vtbx.8  d20, {d16, d17, d18}, d21
+@      vtbx.8  d20, {d16, d17, d18, d19}, d21
 
 @ CHECK: vtbx.8        d18, {d16}, d17         @ encoding: [0xe1,0x28,0xf0,0xf3]
-@ CHECK: vtbx.8        d19, {d16, d17}, d18    @ encoding: [0xe2,0x39,0xf0,0xf3]
-@ CHECK: vtbx.8        d20, {d16, d17, d18}, d21 @ encoding: [0xe5,0x4a,0xf0,0xf3]
-@ CHECK: vtbx.8        d20, {d16, d17, d18, d19}, d21 @ encoding: [0xe5,0x4b,0xf0,0xf3]
+@ FIXME: vtbx.8        d19, {d16, d17}, d18    @ encoding: [0xe2,0x39,0xf0,0xf3]
+@ FIXME: vtbx.8        d20, {d16, d17, d18}, d21 @ encoding: [0xe5,0x4a,0xf0,0xf3]
+@ FIXME: vtbx.8        d20, {d16, d17, d18, d19}, d21 @ encoding: [0xe5,0x4b,0xf0,0xf3]