[Hexagon] Organizing tests and adding a few missing jump instruction encodings.
[oota-llvm.git] / test / MC / Disassembler / Hexagon / j.txt
index c14d0341547c362c96968889a34053b61bc73137..0c2cc7a4cf34ebfbe75ec9b7dd9eb1551641f533 100644 (file)
@@ -1,11 +1,15 @@
 # RUN: llvm-mc -triple hexagon -disassemble < %s | FileCheck %s
+# Hexagon Programmer's Reference Manual 11.4 J
 
+# Call subroutine
 0x22 0xc0 0x00 0x5a
 # CHECK: call
 0x22 0xc3 0x00 0x5d
 # CHECK: if (p3) call
 0x22 0xc3 0x20 0x5d
 # CHECK: if (!p3) call
+
+# Compare and jump
 0x00 0xc0 0x89 0x11
 # CHECK: p0 = cmp.eq(r9,#-1); if (p0.new) jump:nt
 0x00 0xc1 0x89 0x11
 # CHECK: p0 = cmp.gtu(r9, r13); if (!p0.new) jump:t
 0x00 0xfd 0x49 0x15
 # CHECK: p1 = cmp.gtu(r9, r13); if (!p1.new) jump:t
+
+# Jump to address
+0x22 0xc0 0x00 0x58
+# CHECK: jump
+0x22 0xc3 0x00 0x5c
+# CHECK: if (p3) jump
+0x22 0xc3 0x20 0x5c
+# CHECK: if (!p3) jump
+
+# Jump to address conditioned on new predicate
+0x03 0x40 0x45 0x85 0x00 0xcb 0x00 0x5c
+# CHECK: p3 = r5
+# CHECK-NEXT: if (p3.new) jump:nt
+0x03 0x40 0x45 0x85 0x00 0xdb 0x00 0x5c
+# CHECK: p3 = r5
+# CHECK-NEXT: if (p3.new) jump:t
+0x03 0x40 0x45 0x85 0x00 0xcb 0x20 0x5c
+# CHECK: p3 = r5
+# CHECK-NEXT: if (!p3.new) jump:nt
+0x03 0x40 0x45 0x85 0x00 0xdb 0x20 0x5c
+# CHECK: p3 = r5
+# CHECK-NEXT: if (!p3.new) jump:t
+
+# Jump to address conditioned on register value
+0x00 0xc0 0x11 0x61
+# CHECK: if (r17!=#0) jump:nt
+0x00 0xd0 0x11 0x61
+# CHECK: if (r17!=#0) jump:t
+0x00 0xc0 0x51 0x61
+# CHECK: if (r17>=#0) jump:nt
+0x00 0xd0 0x51 0x61
+# CHECK: if (r17>=#0) jump:t
+0x00 0xc0 0x91 0x61
+# CHECK: if (r17==#0) jump:nt
+0x00 0xd0 0x91 0x61
+# CHECK: if (r17==#0) jump:t
+0x00 0xc0 0xd1 0x61
+# CHECK: if (r17<=#0) jump:nt
+0x00 0xd0 0xd1 0x61
+# CHECK: if (r17<=#0) jump:t
+
+# Transfer and jump
 0x00 0xd5 0x09 0x16
 # CHECK: r9 = #21 ; jump
 0x00 0xc9 0x0d 0x17