1# RUN: llvm-mc -triple hexagon -disassemble < %s | FileCheck %s 2# Hexagon Programmer's Reference Manual 11.4 J 3 4# Call subroutine 50x22 0xc0 0x00 0x5a 6# CHECK: call 70x22 0xc3 0x00 0x5d 8# CHECK: if (p3) call 90x22 0xc3 0x20 0x5d 10# CHECK: if (!p3) call 11 12# Compare and jump 130x00 0xc0 0x89 0x11 14# CHECK: p0 = cmp.eq(r17,#-1); if (p0.new) jump:nt 150x00 0xc1 0x89 0x11 16# CHECK: p0 = cmp.gt(r17,#-1); if (p0.new) jump:nt 170x00 0xc3 0x89 0x11 18# CHECK: p0 = tstbit(r17, #0); if (p0.new) jump:nt 190x00 0xe0 0x89 0x11 20# CHECK: p0 = cmp.eq(r17,#-1); if (p0.new) jump:t 210x00 0xe1 0x89 0x11 22# CHECK: p0 = cmp.gt(r17,#-1); if (p0.new) jump:t 230x00 0xe3 0x89 0x11 24# CHECK: p0 = tstbit(r17, #0); if (p0.new) jump:t 250x00 0xc0 0xc9 0x11 26# CHECK: p0 = cmp.eq(r17,#-1); if (!p0.new) jump:nt 270x00 0xc1 0xc9 0x11 28# CHECK: p0 = cmp.gt(r17,#-1); if (!p0.new) jump:nt 290x00 0xc3 0xc9 0x11 30# CHECK: p0 = tstbit(r17, #0); if (!p0.new) jump:nt 310x00 0xe0 0xc9 0x11 32# CHECK: p0 = cmp.eq(r17,#-1); if (!p0.new) jump:t 330x00 0xe1 0xc9 0x11 34# CHECK: p0 = cmp.gt(r17,#-1); if (!p0.new) jump:t 350x00 0xe3 0xc9 0x11 36# CHECK: p0 = tstbit(r17, #0); if (!p0.new) jump:t 370x00 0xd5 0x09 0x10 38# CHECK: p0 = cmp.eq(r17, #21); if (p0.new) jump:nt 390x00 0xf5 0x09 0x10 40# CHECK: p0 = cmp.eq(r17, #21); if (p0.new) jump:t 410x00 0xd5 0x49 0x10 42# CHECK: p0 = cmp.eq(r17, #21); if (!p0.new) jump:nt 430x00 0xf5 0x49 0x10 44# CHECK: p0 = cmp.eq(r17, #21); if (!p0.new) jump:t 450x00 0xd5 0x89 0x10 46# CHECK: p0 = cmp.gt(r17, #21); if (p0.new) jump:nt 470x00 0xf5 0x89 0x10 48# CHECK: p0 = cmp.gt(r17, #21); if (p0.new) jump:t 490x00 0xd5 0xc9 0x10 50# CHECK: p0 = cmp.gt(r17, #21); if (!p0.new) jump:nt 510x00 0xf5 0xc9 0x10 52# CHECK: p0 = cmp.gt(r17, #21); if (!p0.new) jump:t 530x00 0xd5 0x09 0x11 54# CHECK: p0 = cmp.gtu(r17, #21); if (p0.new) jump:nt 550x00 0xf5 0x09 0x11 56# CHECK: p0 = cmp.gtu(r17, #21); if (p0.new) jump:t 570x00 0xd5 0x49 0x11 58# CHECK: p0 = cmp.gtu(r17, #21); if (!p0.new) jump:nt 590x00 0xf5 0x49 0x11 60# CHECK: p0 = cmp.gtu(r17, #21); if (!p0.new) jump:t 610x00 0xc0 0x89 0x13 62# CHECK: p1 = cmp.eq(r17,#-1); if (p1.new) jump:nt 630x00 0xc1 0x89 0x13 64# CHECK: p1 = cmp.gt(r17,#-1); if (p1.new) jump:nt 650x00 0xc3 0x89 0x13 66# CHECK: p1 = tstbit(r17, #0); if (p1.new) jump:nt 670x00 0xe0 0x89 0x13 68# CHECK: p1 = cmp.eq(r17,#-1); if (p1.new) jump:t 690x00 0xe1 0x89 0x13 70# CHECK: p1 = cmp.gt(r17,#-1); if (p1.new) jump:t 710x00 0xe3 0x89 0x13 72# CHECK: p1 = tstbit(r17, #0); if (p1.new) jump:t 730x00 0xc0 0xc9 0x13 74# CHECK: p1 = cmp.eq(r17,#-1); if (!p1.new) jump:nt 750x00 0xc1 0xc9 0x13 76# CHECK: p1 = cmp.gt(r17,#-1); if (!p1.new) jump:nt 770x00 0xc3 0xc9 0x13 78# CHECK: p1 = tstbit(r17, #0); if (!p1.new) jump:nt 790x00 0xe0 0xc9 0x13 80# CHECK: p1 = cmp.eq(r17,#-1); if (!p1.new) jump:t 810x00 0xe1 0xc9 0x13 82# CHECK: p1 = cmp.gt(r17,#-1); if (!p1.new) jump:t 830x00 0xe3 0xc9 0x13 84# CHECK: p1 = tstbit(r17, #0); if (!p1.new) jump:t 850x00 0xd5 0x09 0x12 86# CHECK: p1 = cmp.eq(r17, #21); if (p1.new) jump:nt 870x00 0xf5 0x09 0x12 88# CHECK: p1 = cmp.eq(r17, #21); if (p1.new) jump:t 890x00 0xd5 0x49 0x12 90# CHECK: p1 = cmp.eq(r17, #21); if (!p1.new) jump:nt 910x00 0xf5 0x49 0x12 92# CHECK: p1 = cmp.eq(r17, #21); if (!p1.new) jump:t 930x00 0xd5 0x89 0x12 94# CHECK: p1 = cmp.gt(r17, #21); if (p1.new) jump:nt 950x00 0xf5 0x89 0x12 96# CHECK: p1 = cmp.gt(r17, #21); if (p1.new) jump:t 970x00 0xd5 0xc9 0x12 98# CHECK: p1 = cmp.gt(r17, #21); if (!p1.new) jump:nt 990x00 0xf5 0xc9 0x12 100# CHECK: p1 = cmp.gt(r17, #21); if (!p1.new) jump:t 1010x00 0xd5 0x09 0x13 102# CHECK: p1 = cmp.gtu(r17, #21); if (p1.new) jump:nt 1030x00 0xf5 0x09 0x13 104# CHECK: p1 = cmp.gtu(r17, #21); if (p1.new) jump:t 1050x00 0xd5 0x49 0x13 106# CHECK: p1 = cmp.gtu(r17, #21); if (!p1.new) jump:nt 1070x00 0xf5 0x49 0x13 108# CHECK: p1 = cmp.gtu(r17, #21); if (!p1.new) jump:t 1090x00 0xcd 0x09 0x14 110# CHECK: p0 = cmp.eq(r17, r21); if (p0.new) jump:nt 1110x00 0xdd 0x09 0x14 112# CHECK: p1 = cmp.eq(r17, r21); if (p1.new) jump:nt 1130x00 0xed 0x09 0x14 114# CHECK: p0 = cmp.eq(r17, r21); if (p0.new) jump:t 1150x00 0xfd 0x09 0x14 116# CHECK: p1 = cmp.eq(r17, r21); if (p1.new) jump:t 1170x00 0xcd 0x49 0x14 118# CHECK: p0 = cmp.eq(r17, r21); if (!p0.new) jump:nt 1190x00 0xdd 0x49 0x14 120# CHECK: p1 = cmp.eq(r17, r21); if (!p1.new) jump:nt 1210x00 0xed 0x49 0x14 122# CHECK: p0 = cmp.eq(r17, r21); if (!p0.new) jump:t 1230x00 0xfd 0x49 0x14 124# CHECK: p1 = cmp.eq(r17, r21); if (!p1.new) jump:t 1250x00 0xcd 0x89 0x14 126# CHECK: p0 = cmp.gt(r17, r21); if (p0.new) jump:nt 1270x00 0xdd 0x89 0x14 128# CHECK: p1 = cmp.gt(r17, r21); if (p1.new) jump:nt 1290x00 0xed 0x89 0x14 130# CHECK: p0 = cmp.gt(r17, r21); if (p0.new) jump:t 1310x00 0xfd 0x89 0x14 132# CHECK: p1 = cmp.gt(r17, r21); if (p1.new) jump:t 1330x00 0xcd 0xc9 0x14 134# CHECK: p0 = cmp.gt(r17, r21); if (!p0.new) jump:nt 1350x00 0xdd 0xc9 0x14 136# CHECK: p1 = cmp.gt(r17, r21); if (!p1.new) jump:nt 1370x00 0xed 0xc9 0x14 138# CHECK: p0 = cmp.gt(r17, r21); if (!p0.new) jump:t 1390x00 0xfd 0xc9 0x14 140# CHECK: p1 = cmp.gt(r17, r21); if (!p1.new) jump:t 1410x00 0xcd 0x09 0x15 142# CHECK: p0 = cmp.gtu(r17, r21); if (p0.new) jump:nt 1430x00 0xdd 0x09 0x15 144# CHECK: p1 = cmp.gtu(r17, r21); if (p1.new) jump:nt 1450x00 0xed 0x09 0x15 146# CHECK: p0 = cmp.gtu(r17, r21); if (p0.new) jump:t 1470x00 0xfd 0x09 0x15 148# CHECK: p1 = cmp.gtu(r17, r21); if (p1.new) jump:t 1490x00 0xcd 0x49 0x15 150# CHECK: p0 = cmp.gtu(r17, r21); if (!p0.new) jump:nt 1510x00 0xdd 0x49 0x15 152# CHECK: p1 = cmp.gtu(r17, r21); if (!p1.new) jump:nt 1530x00 0xed 0x49 0x15 154# CHECK: p0 = cmp.gtu(r17, r21); if (!p0.new) jump:t 1550x00 0xfd 0x49 0x15 156# CHECK: p1 = cmp.gtu(r17, r21); if (!p1.new) jump:t 157 158# Jump to address 1590x22 0xc0 0x00 0x58 160# CHECK: jump 1610x22 0xc3 0x00 0x5c 162# CHECK: if (p3) jump 1630x22 0xc3 0x20 0x5c 164# CHECK: if (!p3) jump 165 166# Jump to address conditioned on new predicate 1670x03 0x40 0x45 0x85 0x00 0xcb 0x00 0x5c 168# CHECK: p3 = r5 169# CHECK-NEXT: if (p3.new) jump:nt 1700x03 0x40 0x45 0x85 0x00 0xdb 0x00 0x5c 171# CHECK: p3 = r5 172# CHECK-NEXT: if (p3.new) jump:t 1730x03 0x40 0x45 0x85 0x00 0xcb 0x20 0x5c 174# CHECK: p3 = r5 175# CHECK-NEXT: if (!p3.new) jump:nt 1760x03 0x40 0x45 0x85 0x00 0xdb 0x20 0x5c 177# CHECK: p3 = r5 178# CHECK-NEXT: if (!p3.new) jump:t 179 180# Jump to address conditioned on register value 1810x00 0xc0 0x11 0x61 182# CHECK: if (r17!=#0) jump:nt 1830x00 0xd0 0x11 0x61 184# CHECK: if (r17!=#0) jump:t 1850x00 0xc0 0x51 0x61 186# CHECK: if (r17>=#0) jump:nt 1870x00 0xd0 0x51 0x61 188# CHECK: if (r17>=#0) jump:t 1890x00 0xc0 0x91 0x61 190# CHECK: if (r17==#0) jump:nt 1910x00 0xd0 0x91 0x61 192# CHECK: if (r17==#0) jump:t 1930x00 0xc0 0xd1 0x61 194# CHECK: if (r17<=#0) jump:nt 1950x00 0xd0 0xd1 0x61 196# CHECK: if (r17<=#0) jump:t 197 198# Transfer and jump 1990x00 0xd5 0x09 0x16 200# CHECK: r17 = #21 ; jump 2010x00 0xc9 0x0d 0x17 202# CHECK: r17 = r21 ; jump 203