1# RUN: llvm-mc --triple hexagon -disassemble < %s | FileCheck %s 2 30xb1 0xdf 0x35 0xd7 4# CHECK: r17 = add(#21, mpyi(r21, r31)) 50xbf 0xd1 0x35 0xd8 6# CHECK: r17 = add(#21, mpyi(r21, #31)) 70xb5 0xd1 0x3f 0xdf 8# CHECK: r17 = add(r21, mpyi(#84, r31)) 90xf5 0xf1 0xb5 0xdf 10# CHECK: r17 = add(r21, mpyi(r21, #31)) 110x15 0xd1 0x1f 0xe3 12# CHECK: r17 = add(r21, mpyi(r17, r31)) 130xf1 0xc3 0x15 0xe0 14# CHECK: r17 =+ mpyi(r21, #31) 150xf1 0xc3 0x95 0xe0 16# CHECK: r17 =- mpyi(r21, #31) 170xf1 0xc3 0x15 0xe1 18# CHECK: r17 += mpyi(r21, #31) 190xf1 0xc3 0x95 0xe1 20# CHECK: r17 -= mpyi(r21, #31) 210x11 0xdf 0x15 0xed 22# CHECK: r17 = mpyi(r21, r31) 230x11 0xdf 0x15 0xef 24# CHECK: r17 += mpyi(r21, r31) 250x10 0xdf 0x95 0xe4 26# CHECK: r17:16 = mpy(r21.l, r31.l):<<1 270x30 0xdf 0x95 0xe4 28# CHECK: r17:16 = mpy(r21.l, r31.h):<<1 290x50 0xdf 0x95 0xe4 30# CHECK: r17:16 = mpy(r21.h, r31.l):<<1 310x70 0xdf 0x95 0xe4 32# CHECK: r17:16 = mpy(r21.h, r31.h):<<1 330x10 0xdf 0xb5 0xe4 34# CHECK: r17:16 = mpy(r21.l, r31.l):<<1:rnd 350x30 0xdf 0xb5 0xe4 36# CHECK: r17:16 = mpy(r21.l, r31.h):<<1:rnd 370x50 0xdf 0xb5 0xe4 38# CHECK: r17:16 = mpy(r21.h, r31.l):<<1:rnd 390x70 0xdf 0xb5 0xe4 40# CHECK: r17:16 = mpy(r21.h, r31.h):<<1:rnd 410x10 0xdf 0x95 0xe6 42# CHECK: r17:16 += mpy(r21.l, r31.l):<<1 430x30 0xdf 0x95 0xe6 44# CHECK: r17:16 += mpy(r21.l, r31.h):<<1 450x50 0xdf 0x95 0xe6 46# CHECK: r17:16 += mpy(r21.h, r31.l):<<1 470x70 0xdf 0x95 0xe6 48# CHECK: r17:16 += mpy(r21.h, r31.h):<<1 490x10 0xdf 0xb5 0xe6 50# CHECK: r17:16 -= mpy(r21.l, r31.l):<<1 510x30 0xdf 0xb5 0xe6 52# CHECK: r17:16 -= mpy(r21.l, r31.h):<<1 530x50 0xdf 0xb5 0xe6 54# CHECK: r17:16 -= mpy(r21.h, r31.l):<<1 550x70 0xdf 0xb5 0xe6 56# CHECK: r17:16 -= mpy(r21.h, r31.h):<<1 570x11 0xdf 0x95 0xec 58# CHECK: r17 = mpy(r21.l, r31.l):<<1 590x31 0xdf 0x95 0xec 60# CHECK: r17 = mpy(r21.l, r31.h):<<1 610x51 0xdf 0x95 0xec 62# CHECK: r17 = mpy(r21.h, r31.l):<<1 630x71 0xdf 0x95 0xec 64# CHECK: r17 = mpy(r21.h, r31.h):<<1 650x91 0xdf 0x95 0xec 66# CHECK: r17 = mpy(r21.l, r31.l):<<1:sat 670xb1 0xdf 0x95 0xec 68# CHECK: r17 = mpy(r21.l, r31.h):<<1:sat 690xd1 0xdf 0x95 0xec 70# CHECK: r17 = mpy(r21.h, r31.l):<<1:sat 710xf1 0xdf 0x95 0xec 72# CHECK: r17 = mpy(r21.h, r31.h):<<1:sat 730x11 0xdf 0xb5 0xec 74# CHECK: r17 = mpy(r21.l, r31.l):<<1:rnd 750x31 0xdf 0xb5 0xec 76# CHECK: r17 = mpy(r21.l, r31.h):<<1:rnd 770x51 0xdf 0xb5 0xec 78# CHECK: r17 = mpy(r21.h, r31.l):<<1:rnd 790x71 0xdf 0xb5 0xec 80# CHECK: r17 = mpy(r21.h, r31.h):<<1:rnd 810x91 0xdf 0xb5 0xec 82# CHECK: r17 = mpy(r21.l, r31.l):<<1:rnd:sat 830xb1 0xdf 0xb5 0xec 84# CHECK: r17 = mpy(r21.l, r31.h):<<1:rnd:sat 850xd1 0xdf 0xb5 0xec 86# CHECK: r17 = mpy(r21.h, r31.l):<<1:rnd:sat 870xf1 0xdf 0xb5 0xec 88# CHECK: r17 = mpy(r21.h, r31.h):<<1:rnd:sat 890x11 0xdf 0x95 0xee 90# CHECK: r17 += mpy(r21.l, r31.l):<<1 910x31 0xdf 0x95 0xee 92# CHECK: r17 += mpy(r21.l, r31.h):<<1 930x51 0xdf 0x95 0xee 94# CHECK: r17 += mpy(r21.h, r31.l):<<1 950x71 0xdf 0x95 0xee 96# CHECK: r17 += mpy(r21.h, r31.h):<<1 970x91 0xdf 0x95 0xee 98# CHECK: r17 += mpy(r21.l, r31.l):<<1:sat 990xb1 0xdf 0x95 0xee 100# CHECK: r17 += mpy(r21.l, r31.h):<<1:sat 1010xd1 0xdf 0x95 0xee 102# CHECK: r17 += mpy(r21.h, r31.l):<<1:sat 1030xf1 0xdf 0x95 0xee 104# CHECK: r17 += mpy(r21.h, r31.h):<<1:sat 1050x11 0xdf 0xb5 0xee 106# CHECK: r17 -= mpy(r21.l, r31.l):<<1 1070x31 0xdf 0xb5 0xee 108# CHECK: r17 -= mpy(r21.l, r31.h):<<1 1090x51 0xdf 0xb5 0xee 110# CHECK: r17 -= mpy(r21.h, r31.l):<<1 1110x71 0xdf 0xb5 0xee 112# CHECK: r17 -= mpy(r21.h, r31.h):<<1 1130x91 0xdf 0xb5 0xee 114# CHECK: r17 -= mpy(r21.l, r31.l):<<1:sat 1150xb1 0xdf 0xb5 0xee 116# CHECK: r17 -= mpy(r21.l, r31.h):<<1:sat 1170xd1 0xdf 0xb5 0xee 118# CHECK: r17 -= mpy(r21.h, r31.l):<<1:sat 1190xf1 0xdf 0xb5 0xee 120# CHECK: r17 -= mpy(r21.h, r31.h):<<1:sat 1210x10 0xdf 0xd5 0xe4 122# CHECK: r17:16 = mpyu(r21.l, r31.l):<<1 1230x30 0xdf 0xd5 0xe4 124# CHECK: r17:16 = mpyu(r21.l, r31.h):<<1 1250x50 0xdf 0xd5 0xe4 126# CHECK: r17:16 = mpyu(r21.h, r31.l):<<1 1270x70 0xdf 0xd5 0xe4 128# CHECK: r17:16 = mpyu(r21.h, r31.h):<<1 1290x10 0xdf 0xd5 0xe6 130# CHECK: r17:16 += mpyu(r21.l, r31.l):<<1 1310x30 0xdf 0xd5 0xe6 132# CHECK: r17:16 += mpyu(r21.l, r31.h):<<1 1330x50 0xdf 0xd5 0xe6 134# CHECK: r17:16 += mpyu(r21.h, r31.l):<<1 1350x70 0xdf 0xd5 0xe6 136# CHECK: r17:16 += mpyu(r21.h, r31.h):<<1 1370x10 0xdf 0xf5 0xe6 138# CHECK: r17:16 -= mpyu(r21.l, r31.l):<<1 1390x30 0xdf 0xf5 0xe6 140# CHECK: r17:16 -= mpyu(r21.l, r31.h):<<1 1410x50 0xdf 0xf5 0xe6 142# CHECK: r17:16 -= mpyu(r21.h, r31.l):<<1 1430x70 0xdf 0xf5 0xe6 144# CHECK: r17:16 -= mpyu(r21.h, r31.h):<<1 1450x11 0xdf 0xd5 0xec 146# CHECK: r17 = mpyu(r21.l, r31.l):<<1 1470x31 0xdf 0xd5 0xec 148# CHECK: r17 = mpyu(r21.l, r31.h):<<1 1490x51 0xdf 0xd5 0xec 150# CHECK: r17 = mpyu(r21.h, r31.l):<<1 1510x71 0xdf 0xd5 0xec 152# CHECK: r17 = mpyu(r21.h, r31.h):<<1 1530x11 0xdf 0xd5 0xee 154# CHECK: r17 += mpyu(r21.l, r31.l):<<1 1550x31 0xdf 0xd5 0xee 156# CHECK: r17 += mpyu(r21.l, r31.h):<<1 1570x51 0xdf 0xd5 0xee 158# CHECK: r17 += mpyu(r21.h, r31.l):<<1 1590x71 0xdf 0xd5 0xee 160# CHECK: r17 += mpyu(r21.h, r31.h):<<1 1610x11 0xdf 0xf5 0xee 162# CHECK: r17 -= mpyu(r21.l, r31.l):<<1 1630x31 0xdf 0xf5 0xee 164# CHECK: r17 -= mpyu(r21.l, r31.h):<<1 1650x51 0xdf 0xf5 0xee 166# CHECK: r17 -= mpyu(r21.h, r31.l):<<1 1670x71 0xdf 0xf5 0xee 168# CHECK: r17 -= mpyu(r21.h, r31.h):<<1 1690x31 0xdf 0x15 0xed 170# CHECK: r17 = mpy(r21, r31) 1710x31 0xdf 0x35 0xed 172# CHECK: r17 = mpy(r21, r31):rnd 1730x31 0xdf 0x55 0xed 174# CHECK: r17 = mpyu(r21, r31) 1750x31 0xdf 0x75 0xed 176# CHECK: r17 = mpysu(r21, r31) 1770x11 0xdf 0xb5 0xed 178# CHECK: r17 = mpy(r21, r31.h):<<1:sat 1790x31 0xdf 0xb5 0xed 180# CHECK: r17 = mpy(r21, r31.l):<<1:sat 1810x11 0xdf 0xf5 0xed 182# CHECK: r17 = mpy(r21, r31):<<1:sat 1830x91 0xdf 0xb5 0xed 184# CHECK: r17 = mpy(r21, r31.h):<<1:rnd:sat 1850x91 0xdf 0xf5 0xed 186# CHECK: r17 = mpy(r21, r31.l):<<1:rnd:sat 1870x11 0xdf 0x75 0xef 188# CHECK: r17 += mpy(r21, r31):<<1:sat 1890x31 0xdf 0x75 0xef 190# CHECK: r17 -= mpy(r21, r31):<<1:sat 1910x10 0xdf 0x15 0xe5 192# CHECK: r17:16 = mpy(r21, r31) 1930x10 0xdf 0x55 0xe5 194# CHECK: r17:16 = mpyu(r21, r31) 1950x10 0xdf 0x15 0xe7 196# CHECK: r17:16 += mpy(r21, r31) 1970x10 0xdf 0x35 0xe7 198# CHECK: r17:16 -= mpy(r21, r31) 1990x10 0xdf 0x55 0xe7 200# CHECK: r17:16 += mpyu(r21, r31) 2010x10 0xdf 0x75 0xe7 202# CHECK: r17:16 -= mpyu(r21, r31) 203