diff options
Diffstat (limited to 'test/MC/Disassembler/Hexagon/xtype_pred.txt')
-rw-r--r-- | test/MC/Disassembler/Hexagon/xtype_pred.txt | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/test/MC/Disassembler/Hexagon/xtype_pred.txt b/test/MC/Disassembler/Hexagon/xtype_pred.txt new file mode 100644 index 0000000..cec6d1b --- /dev/null +++ b/test/MC/Disassembler/Hexagon/xtype_pred.txt @@ -0,0 +1,136 @@ +# RUN: llvm-mc -triple=hexagon -disassemble < %s | FileCheck %s +# Hexagon Programmer's Reference Manual 11.10.7 XTYPE/PRED + +# Bounds check +0x83 0xf4 0x10 0xd2 +# CHECK: p3 = boundscheck(r17:16, r21:20):raw:lo +0xa3 0xf4 0x10 0xd2 +# CHECK: p3 = boundscheck(r17:16, r21:20):raw:hi + +# Compare byte +0x43 0xd5 0xd1 0xc7 +# CHECK: p3 = cmpb.gt(r17, r21) +0xc3 0xd5 0xd1 0xc7 +# CHECK: p3 = cmpb.eq(r17, r21) +0xe3 0xd5 0xd1 0xc7 +# CHECK: p3 = cmpb.gtu(r17, r21) +0xa3 0xc2 0x11 0xdd +# CHECK: p3 = cmpb.eq(r17, #21) +0xa3 0xc2 0x31 0xdd +# CHECK: p3 = cmpb.gt(r17, #21) +0xa3 0xc2 0x51 0xdd +# CHECK: p3 = cmpb.gtu(r17, #21) + +# Compare half +0x63 0xd5 0xd1 0xc7 +# CHECK: p3 = cmph.eq(r17, r21) +0x83 0xd5 0xd1 0xc7 +# CHECK: p3 = cmph.gt(r17, r21) +0xa3 0xd5 0xd1 0xc7 +# CHECK: p3 = cmph.gtu(r17, r21) +0xab 0xc2 0x11 0xdd +# CHECK: p3 = cmph.eq(r17, #21) +0xab 0xc2 0x31 0xdd +# CHECK: p3 = cmph.gt(r17, #21) +0xab 0xc2 0x51 0xdd +# CHECK: p3 = cmph.gtu(r17, #21) + +# Compare doublewords +0x03 0xde 0x94 0xd2 +# CHECK: p3 = cmp.eq(r21:20, r31:30) +0x43 0xde 0x94 0xd2 +# CHECK: p3 = cmp.gt(r21:20, r31:30) +0x83 0xde 0x94 0xd2 +# CHECK: p3 = cmp.gtu(r21:20, r31:30) + +# Compare bitmask +0x03 0xd5 0x91 0x85 +# CHECK: p3 = bitsclr(r17, #21) +0x03 0xd5 0xb1 0x85 +# CHECK: p3 = !bitsclr(r17, #21) +0x03 0xd5 0x51 0xc7 +# CHECK: p3 = bitsset(r17, r21) +0x03 0xd5 0x71 0xc7 +# CHECK: p3 = !bitsset(r17, r21) +0x03 0xd5 0x91 0xc7 +# CHECK: p3 = bitsclr(r17, r21) +0x03 0xd5 0xb1 0xc7 +# CHECK: p3 = !bitsclr(r17, r21) + +# mask generate from predicate +0x10 0xc3 0x00 0x86 +# CHECK: r17:16 = mask(p3) + +# Check for TLB match +0x63 0xf5 0x10 0xd2 +# CHECK: p3 = tlbmatch(r17:16, r21) + +# Predicate Transfer +0x03 0xc0 0x45 0x85 +# CHECK: p3 = r5 +0x05 0xc0 0x43 0x89 +# CHECK: r5 = p3 + +# Test bit +0x03 0xd5 0x11 0x85 +# CHECK: p3 = tstbit(r17, #21) +0x03 0xd5 0x31 0x85 +# CHECK: p3 = !tstbit(r17, #21) +0x03 0xd5 0x11 0xc7 +# CHECK: p3 = tstbit(r17, r21) +0x03 0xd5 0x31 0xc7 +# CHECK: p3 = !tstbit(r17, r21) + +# Vector compare halfwords +0x63 0xde 0x14 0xd2 +# CHECK: p3 = vcmph.eq(r21:20, r31:30) +0x83 0xde 0x14 0xd2 +# CHECK: p3 = vcmph.gt(r21:20, r31:30) +0xa3 0xde 0x14 0xd2 +# CHECK: p3 = vcmph.gtu(r21:20, r31:30) +0xeb 0xc3 0x14 0xdc +# CHECK: p3 = vcmph.eq(r21:20, #31) +0xeb 0xc3 0x34 0xdc +# CHECK: p3 = vcmph.gt(r21:20, #31) +0xeb 0xc3 0x54 0xdc +# CHECK: p3 = vcmph.gtu(r21:20, #31) + +# Vector compare bytes for any match +0x03 0xfe 0x14 0xd2 +# CHECK: p3 = any8(vcmpb.eq(r21:20, r31:30)) + +# Vector compare bytes +0x63 0xde 0x14 0xd2 +# CHECK: p3 = vcmph.eq(r21:20, r31:30) +0x83 0xde 0x14 0xd2 +# CHECK: p3 = vcmph.gt(r21:20, r31:30) +0xa3 0xde 0x14 0xd2 +# CHECK: p3 = vcmph.gtu(r21:20, r31:30) +0xeb 0xc3 0x14 0xdc +# CHECK: p3 = vcmph.eq(r21:20, #31) +0xeb 0xc3 0x34 0xdc +# CHECK: p3 = vcmph.gt(r21:20, #31) +0xeb 0xc3 0x54 0xdc +# CHECK: p3 = vcmph.gtu(r21:20, #31) + +# Vector compare words +0x03 0xde 0x14 0xd2 +# CHECK: p3 = vcmpw.eq(r21:20, r31:30) +0x23 0xde 0x14 0xd2 +# CHECK: p3 = vcmpw.gt(r21:20, r31:30) +0x43 0xde 0x14 0xd2 +# CHECK: p3 = vcmpw.gtu(r21:20, r31:30) +0xf3 0xc3 0x14 0xdc +# CHECK: p3 = vcmpw.eq(r21:20, #31) +0xf3 0xc3 0x34 0xdc +# CHECK: p3 = vcmpw.gt(r21:20, #31) +0xf3 0xc3 0x54 0xdc +# CHECK: p3 = vcmpw.gtu(r21:20, #31) + +# Viterbi pack even and odd predicate bits +0x11 0xc2 0x03 0x89 +# CHECK: r17 = vitpack(p3, p2) + +# Vector mux +0x70 0xde 0x14 0xd1 +# CHECK: r17:16 = vmux(p3, r21:20, r31:30) |