diff options
| author | Colin LeMahieu <colinl@codeaurora.org> | 2015-01-30 21:14:00 +0000 |
|---|---|---|
| committer | Colin LeMahieu <colinl@codeaurora.org> | 2015-01-30 21:14:00 +0000 |
| commit | 26a537c743d78e141c6433e1739f7c0d305ca049 (patch) | |
| tree | e3049e8fc29d55a8985625eb8963085fb8c471c0 /llvm/test/MC/Disassembler | |
| parent | a580b6ec67ec605f563bc4e52a3490b9c951ce59 (diff) | |
| download | bcm5719-llvm-26a537c743d78e141c6433e1739f7c0d305ca049.tar.gz bcm5719-llvm-26a537c743d78e141c6433e1739f7c0d305ca049.zip | |
[Hexagon] Adding vector permutation instructions and tests.
llvm-svn: 227612
Diffstat (limited to 'llvm/test/MC/Disassembler')
| -rw-r--r-- | llvm/test/MC/Disassembler/Hexagon/xtype_perm.txt | 88 |
1 files changed, 87 insertions, 1 deletions
diff --git a/llvm/test/MC/Disassembler/Hexagon/xtype_perm.txt b/llvm/test/MC/Disassembler/Hexagon/xtype_perm.txt index 7267e71b18a..91d2fc5ae69 100644 --- a/llvm/test/MC/Disassembler/Hexagon/xtype_perm.txt +++ b/llvm/test/MC/Disassembler/Hexagon/xtype_perm.txt @@ -1,5 +1,11 @@ -# RUN: llvm-mc --triple hexagon -disassemble < %s | FileCheck %s +# RUN: llvm-mc -triple=hexagon -disassemble < %s | FileCheck %s +# Hexagon Programmer's Reference Manual 11.10.6 XTYPE/PERM +# CABAC decode bin +0xd0 0xde 0xd4 0xc1 +# CHECK: r17:16 = decbin(r21:20, r31:30) + +# Saturate 0x11 0xc0 0xd4 0x88 # CHECK: r17 = sat(r21:20) 0x91 0xc0 0xd5 0x8c @@ -10,9 +16,89 @@ # CHECK: r17 = satub(r21) 0xf1 0xc0 0xd5 0x8c # CHECK: r17 = satb(r21) + +# Swizzle bytes 0xf1 0xc0 0x95 0x8c # CHECK: r17 = swiz(r21) + +# Vector align 0x70 0xd4 0x1e 0xc2 # CHECK: r17:16 = valignb(r21:20, r31:30, p3) 0x70 0xde 0x94 0xc2 # CHECK: r17:16 = vspliceb(r21:20, r31:30, p3) + +# Vector round and pack +0x91 0xc0 0x94 0x88 +# CHECK: r17 = vrndwh(r21:20) +0xd1 0xc0 0x94 0x88 +# CHECK: r17 = vrndwh(r21:20):sat + +# Vector saturate and pack +0x11 0xc0 0x14 0x88 +# CHECK: r17 = vsathub(r21:20) +0x51 0xc0 0x14 0x88 +# CHECK: r17 = vsatwh(r21:20) +0x91 0xc0 0x14 0x88 +# CHECK: r17 = vsatwuh(r21:20) +0xd1 0xc0 0x14 0x88 +# CHECK: r17 = vsathb(r21:20) +0x11 0xc0 0x95 0x8c +# CHECK: r17 = vsathb(r21) +0x51 0xc0 0x95 0x8c +# CHECK: r17 = vsathub(r21) + +# Vector saturate without pack +0x90 0xc0 0x14 0x80 +# CHECK: r17:16 = vsathub(r21:20) +0xb0 0xc0 0x14 0x80 +# CHECK: r17:16 = vsatwuh(r21:20) +0xd0 0xc0 0x14 0x80 +# CHECK: r17:16 = vsatwh(r21:20) +0xf0 0xc0 0x14 0x80 +# CHECK: r17:16 = vsathb(r21:20) + +# Vector shuffle +0x50 0xde 0x14 0xc1 +# CHECK: r17:16 = shuffeb(r21:20, r31:30) +0x90 0xd4 0x1e 0xc1 +# CHECK: r17:16 = shuffob(r21:20, r31:30) +0xd0 0xde 0x14 0xc1 +# CHECK: r17:16 = shuffeh(r21:20, r31:30) +0x10 0xd4 0x9e 0xc1 +# CHECK: r17:16 = shuffoh(r21:20, r31:30) + +# Vector splat bytes +0xf1 0xc0 0x55 0x8c +# CHECK: r17 = vsplatb(r21) + +# Vector splat halfwords +0x50 0xc0 0x55 0x84 +# CHECK: r17:16 = vsplath(r21) + +# Vector splice +0x70 0xde 0x94 0xc0 +# CHECK: r17:16 = vspliceb(r21:20, r31:30, #3) +0x70 0xde 0x94 0xc2 +# CHECK: r17:16 = vspliceb(r21:20, r31:30, p3) + +# Vector sign extend +0x10 0xc0 0x15 0x84 +# CHECK: r17:16 = vsxtbh(r21) +0x90 0xc0 0x15 0x84 +# CHECK: r17:16 = vsxthw(r21) + +# Vector truncate +0x11 0xc0 0x94 0x88 +# CHECK: r17 = vtrunohb(r21:20) +0x51 0xc0 0x94 0x88 +# CHECK: r17 = vtrunehb(r21:20) +0x50 0xde 0x94 0xc1 +# CHECK: r17:16 = vtrunewh(r21:20, r31:30) +0x90 0xde 0x94 0xc1 +# CHECK: r17:16 = vtrunowh(r21:20, r31:30) + +# Vector zero extend +0x50 0xc0 0x15 0x84 +# CHECK: r17:16 = vzxtbh(r21) +0xd0 0xc0 0x15 0x84 +# CHECK: r17:16 = vzxthw(r21) |

