203 lines · plain
1# RUN: llvm-mc -triple hexagon -disassemble < %s | FileCheck %s2# Hexagon Programmer's Reference Manual 11.4 J3 4# Call subroutine50x22 0xc0 0x00 0x5a6# CHECK: call70x22 0xc3 0x00 0x5d8# CHECK: if (p3) call90x22 0xc3 0x20 0x5d10# CHECK: if (!p3) call11 12# Compare and jump130x00 0xc0 0x89 0x1114# CHECK: p0 = cmp.eq(r17,#-1); if (p0.new) jump:nt150x00 0xc1 0x89 0x1116# CHECK: p0 = cmp.gt(r17,#-1); if (p0.new) jump:nt170x00 0xc3 0x89 0x1118# CHECK: p0 = tstbit(r17,#0); if (p0.new) jump:nt190x00 0xe0 0x89 0x1120# CHECK: p0 = cmp.eq(r17,#-1); if (p0.new) jump:t210x00 0xe1 0x89 0x1122# CHECK: p0 = cmp.gt(r17,#-1); if (p0.new) jump:t230x00 0xe3 0x89 0x1124# CHECK: p0 = tstbit(r17,#0); if (p0.new) jump:t250x00 0xc0 0xc9 0x1126# CHECK: p0 = cmp.eq(r17,#-1); if (!p0.new) jump:nt270x00 0xc1 0xc9 0x1128# CHECK: p0 = cmp.gt(r17,#-1); if (!p0.new) jump:nt290x00 0xc3 0xc9 0x1130# CHECK: p0 = tstbit(r17,#0); if (!p0.new) jump:nt310x00 0xe0 0xc9 0x1132# CHECK: p0 = cmp.eq(r17,#-1); if (!p0.new) jump:t330x00 0xe1 0xc9 0x1134# CHECK: p0 = cmp.gt(r17,#-1); if (!p0.new) jump:t350x00 0xe3 0xc9 0x1136# CHECK: p0 = tstbit(r17,#0); if (!p0.new) jump:t370x00 0xd5 0x09 0x1038# CHECK: p0 = cmp.eq(r17,#21); if (p0.new) jump:nt390x00 0xf5 0x09 0x1040# CHECK: p0 = cmp.eq(r17,#21); if (p0.new) jump:t410x00 0xd5 0x49 0x1042# CHECK: p0 = cmp.eq(r17,#21); if (!p0.new) jump:nt430x00 0xf5 0x49 0x1044# CHECK: p0 = cmp.eq(r17,#21); if (!p0.new) jump:t450x00 0xd5 0x89 0x1046# CHECK: p0 = cmp.gt(r17,#21); if (p0.new) jump:nt470x00 0xf5 0x89 0x1048# CHECK: p0 = cmp.gt(r17,#21); if (p0.new) jump:t490x00 0xd5 0xc9 0x1050# CHECK: p0 = cmp.gt(r17,#21); if (!p0.new) jump:nt510x00 0xf5 0xc9 0x1052# CHECK: p0 = cmp.gt(r17,#21); if (!p0.new) jump:t530x00 0xd5 0x09 0x1154# CHECK: p0 = cmp.gtu(r17,#21); if (p0.new) jump:nt550x00 0xf5 0x09 0x1156# CHECK: p0 = cmp.gtu(r17,#21); if (p0.new) jump:t570x00 0xd5 0x49 0x1158# CHECK: p0 = cmp.gtu(r17,#21); if (!p0.new) jump:nt590x00 0xf5 0x49 0x1160# CHECK: p0 = cmp.gtu(r17,#21); if (!p0.new) jump:t610x00 0xc0 0x89 0x1362# CHECK: p1 = cmp.eq(r17,#-1); if (p1.new) jump:nt630x00 0xc1 0x89 0x1364# CHECK: p1 = cmp.gt(r17,#-1); if (p1.new) jump:nt650x00 0xc3 0x89 0x1366# CHECK: p1 = tstbit(r17,#0); if (p1.new) jump:nt670x00 0xe0 0x89 0x1368# CHECK: p1 = cmp.eq(r17,#-1); if (p1.new) jump:t690x00 0xe1 0x89 0x1370# CHECK: p1 = cmp.gt(r17,#-1); if (p1.new) jump:t710x00 0xe3 0x89 0x1372# CHECK: p1 = tstbit(r17,#0); if (p1.new) jump:t730x00 0xc0 0xc9 0x1374# CHECK: p1 = cmp.eq(r17,#-1); if (!p1.new) jump:nt750x00 0xc1 0xc9 0x1376# CHECK: p1 = cmp.gt(r17,#-1); if (!p1.new) jump:nt770x00 0xc3 0xc9 0x1378# CHECK: p1 = tstbit(r17,#0); if (!p1.new) jump:nt790x00 0xe0 0xc9 0x1380# CHECK: p1 = cmp.eq(r17,#-1); if (!p1.new) jump:t810x00 0xe1 0xc9 0x1382# CHECK: p1 = cmp.gt(r17,#-1); if (!p1.new) jump:t830x00 0xe3 0xc9 0x1384# CHECK: p1 = tstbit(r17,#0); if (!p1.new) jump:t850x00 0xd5 0x09 0x1286# CHECK: p1 = cmp.eq(r17,#21); if (p1.new) jump:nt870x00 0xf5 0x09 0x1288# CHECK: p1 = cmp.eq(r17,#21); if (p1.new) jump:t890x00 0xd5 0x49 0x1290# CHECK: p1 = cmp.eq(r17,#21); if (!p1.new) jump:nt910x00 0xf5 0x49 0x1292# CHECK: p1 = cmp.eq(r17,#21); if (!p1.new) jump:t930x00 0xd5 0x89 0x1294# CHECK: p1 = cmp.gt(r17,#21); if (p1.new) jump:nt950x00 0xf5 0x89 0x1296# CHECK: p1 = cmp.gt(r17,#21); if (p1.new) jump:t970x00 0xd5 0xc9 0x1298# CHECK: p1 = cmp.gt(r17,#21); if (!p1.new) jump:nt990x00 0xf5 0xc9 0x12100# CHECK: p1 = cmp.gt(r17,#21); if (!p1.new) jump:t1010x00 0xd5 0x09 0x13102# CHECK: p1 = cmp.gtu(r17,#21); if (p1.new) jump:nt1030x00 0xf5 0x09 0x13104# CHECK: p1 = cmp.gtu(r17,#21); if (p1.new) jump:t1050x00 0xd5 0x49 0x13106# CHECK: p1 = cmp.gtu(r17,#21); if (!p1.new) jump:nt1070x00 0xf5 0x49 0x13108# CHECK: p1 = cmp.gtu(r17,#21); if (!p1.new) jump:t1090x00 0xcd 0x09 0x14110# CHECK: p0 = cmp.eq(r17,r21); if (p0.new) jump:nt1110x00 0xdd 0x09 0x14112# CHECK: p1 = cmp.eq(r17,r21); if (p1.new) jump:nt1130x00 0xed 0x09 0x14114# CHECK: p0 = cmp.eq(r17,r21); if (p0.new) jump:t1150x00 0xfd 0x09 0x14116# CHECK: p1 = cmp.eq(r17,r21); if (p1.new) jump:t1170x00 0xcd 0x49 0x14118# CHECK: p0 = cmp.eq(r17,r21); if (!p0.new) jump:nt1190x00 0xdd 0x49 0x14120# CHECK: p1 = cmp.eq(r17,r21); if (!p1.new) jump:nt1210x00 0xed 0x49 0x14122# CHECK: p0 = cmp.eq(r17,r21); if (!p0.new) jump:t1230x00 0xfd 0x49 0x14124# CHECK: p1 = cmp.eq(r17,r21); if (!p1.new) jump:t1250x00 0xcd 0x89 0x14126# CHECK: p0 = cmp.gt(r17,r21); if (p0.new) jump:nt1270x00 0xdd 0x89 0x14128# CHECK: p1 = cmp.gt(r17,r21); if (p1.new) jump:nt1290x00 0xed 0x89 0x14130# CHECK: p0 = cmp.gt(r17,r21); if (p0.new) jump:t1310x00 0xfd 0x89 0x14132# CHECK: p1 = cmp.gt(r17,r21); if (p1.new) jump:t1330x00 0xcd 0xc9 0x14134# CHECK: p0 = cmp.gt(r17,r21); if (!p0.new) jump:nt1350x00 0xdd 0xc9 0x14136# CHECK: p1 = cmp.gt(r17,r21); if (!p1.new) jump:nt1370x00 0xed 0xc9 0x14138# CHECK: p0 = cmp.gt(r17,r21); if (!p0.new) jump:t1390x00 0xfd 0xc9 0x14140# CHECK: p1 = cmp.gt(r17,r21); if (!p1.new) jump:t1410x00 0xcd 0x09 0x15142# CHECK: p0 = cmp.gtu(r17,r21); if (p0.new) jump:nt1430x00 0xdd 0x09 0x15144# CHECK: p1 = cmp.gtu(r17,r21); if (p1.new) jump:nt1450x00 0xed 0x09 0x15146# CHECK: p0 = cmp.gtu(r17,r21); if (p0.new) jump:t1470x00 0xfd 0x09 0x15148# CHECK: p1 = cmp.gtu(r17,r21); if (p1.new) jump:t1490x00 0xcd 0x49 0x15150# CHECK: p0 = cmp.gtu(r17,r21); if (!p0.new) jump:nt1510x00 0xdd 0x49 0x15152# CHECK: p1 = cmp.gtu(r17,r21); if (!p1.new) jump:nt1530x00 0xed 0x49 0x15154# CHECK: p0 = cmp.gtu(r17,r21); if (!p0.new) jump:t1550x00 0xfd 0x49 0x15156# CHECK: p1 = cmp.gtu(r17,r21); if (!p1.new) jump:t157 158# Jump to address1590x22 0xc0 0x00 0x58160# CHECK: jump1610x22 0xc3 0x00 0x5c162# CHECK: if (p3) jump1630x22 0xc3 0x20 0x5c164# CHECK: if (!p3) jump165 166# Jump to address conditioned on new predicate1670x03 0x40 0x45 0x85 0x00 0xcb 0x00 0x5c168# CHECK: p3 = r5169# CHECK-NEXT: if (p3.new) jump:nt1700x03 0x40 0x45 0x85 0x00 0xdb 0x00 0x5c171# CHECK: p3 = r5172# CHECK-NEXT: if (p3.new) jump:t1730x03 0x40 0x45 0x85 0x00 0xcb 0x20 0x5c174# CHECK: p3 = r5175# CHECK-NEXT: if (!p3.new) jump:nt1760x03 0x40 0x45 0x85 0x00 0xdb 0x20 0x5c177# CHECK: p3 = r5178# CHECK-NEXT: if (!p3.new) jump:t179 180# Jump to address conditioned on register value1810x00 0xc0 0x11 0x61182# CHECK: if (r17!=#0) jump:nt1830x00 0xd0 0x11 0x61184# CHECK: if (r17!=#0) jump:t1850x00 0xc0 0x51 0x61186# CHECK: if (r17>=#0) jump:nt1870x00 0xd0 0x51 0x61188# CHECK: if (r17>=#0) jump:t1890x00 0xc0 0x91 0x61190# CHECK: if (r17==#0) jump:nt1910x00 0xd0 0x91 0x61192# CHECK: if (r17==#0) jump:t1930x00 0xc0 0xd1 0x61194# CHECK: if (r17<=#0) jump:nt1950x00 0xd0 0xd1 0x61196# CHECK: if (r17<=#0) jump:t197 198# Transfer and jump1990x00 0xd5 0x09 0x16200# CHECK: r17 = #21 ; jump2010x00 0xc9 0x0d 0x17202# CHECK: r17 = r21 ; jump203