# RUN: llvm-mc --triple hexagon -disassemble < %s | FileCheck %s 0xf1 0xc3 0x15 0xe0 # CHECK: r17 =+ mpyi(r21, #31) 0xf1 0xc3 0x95 0xe0 # CHECK: r17 =- mpyi(r21, #31) 0xf1 0xc3 0x15 0xe1 # CHECK: r17 += mpyi(r21, #31) 0xf1 0xc3 0x95 0xe1 # CHECK: r17 -= mpyi(r21, #31) 0x11 0xdf 0x15 0xed # CHECK: r17 = mpyi(r21, r31) 0x11 0xdf 0x15 0xef # CHECK: r17 += mpyi(r21, r31) 0x10 0xdf 0x95 0xe4 # CHECK: r17:16 = mpy(r21.l, r31.l):<<1 0x30 0xdf 0x95 0xe4 # CHECK: r17:16 = mpy(r21.l, r31.h):<<1 0x50 0xdf 0x95 0xe4 # CHECK: r17:16 = mpy(r21.h, r31.l):<<1 0x70 0xdf 0x95 0xe4 # CHECK: r17:16 = mpy(r21.h, r31.h):<<1 0x10 0xdf 0xb5 0xe4 # CHECK: r17:16 = mpy(r21.l, r31.l):<<1:rnd 0x30 0xdf 0xb5 0xe4 # CHECK: r17:16 = mpy(r21.l, r31.h):<<1:rnd 0x50 0xdf 0xb5 0xe4 # CHECK: r17:16 = mpy(r21.h, r31.l):<<1:rnd 0x70 0xdf 0xb5 0xe4 # CHECK: r17:16 = mpy(r21.h, r31.h):<<1:rnd 0x10 0xdf 0x95 0xe6 # CHECK: r17:16 += mpy(r21.l, r31.l):<<1 0x30 0xdf 0x95 0xe6 # CHECK: r17:16 += mpy(r21.l, r31.h):<<1 0x50 0xdf 0x95 0xe6 # CHECK: r17:16 += mpy(r21.h, r31.l):<<1 0x70 0xdf 0x95 0xe6 # CHECK: r17:16 += mpy(r21.h, r31.h):<<1 0x10 0xdf 0xb5 0xe6 # CHECK: r17:16 -= mpy(r21.l, r31.l):<<1 0x30 0xdf 0xb5 0xe6 # CHECK: r17:16 -= mpy(r21.l, r31.h):<<1 0x50 0xdf 0xb5 0xe6 # CHECK: r17:16 -= mpy(r21.h, r31.l):<<1 0x70 0xdf 0xb5 0xe6 # CHECK: r17:16 -= mpy(r21.h, r31.h):<<1 0x11 0xdf 0x95 0xec # CHECK: r17 = mpy(r21.l, r31.l):<<1 0x31 0xdf 0x95 0xec # CHECK: r17 = mpy(r21.l, r31.h):<<1 0x51 0xdf 0x95 0xec # CHECK: r17 = mpy(r21.h, r31.l):<<1 0x71 0xdf 0x95 0xec # CHECK: r17 = mpy(r21.h, r31.h):<<1 0x91 0xdf 0x95 0xec # CHECK: r17 = mpy(r21.l, r31.l):<<1:sat 0xb1 0xdf 0x95 0xec # CHECK: r17 = mpy(r21.l, r31.h):<<1:sat 0xd1 0xdf 0x95 0xec # CHECK: r17 = mpy(r21.h, r31.l):<<1:sat 0xf1 0xdf 0x95 0xec # CHECK: r17 = mpy(r21.h, r31.h):<<1:sat 0x11 0xdf 0xb5 0xec # CHECK: r17 = mpy(r21.l, r31.l):<<1:rnd 0x31 0xdf 0xb5 0xec # CHECK: r17 = mpy(r21.l, r31.h):<<1:rnd 0x51 0xdf 0xb5 0xec # CHECK: r17 = mpy(r21.h, r31.l):<<1:rnd 0x71 0xdf 0xb5 0xec # CHECK: r17 = mpy(r21.h, r31.h):<<1:rnd 0x91 0xdf 0xb5 0xec # CHECK: r17 = mpy(r21.l, r31.l):<<1:rnd:sat 0xb1 0xdf 0xb5 0xec # CHECK: r17 = mpy(r21.l, r31.h):<<1:rnd:sat 0xd1 0xdf 0xb5 0xec # CHECK: r17 = mpy(r21.h, r31.l):<<1:rnd:sat 0xf1 0xdf 0xb5 0xec # CHECK: r17 = mpy(r21.h, r31.h):<<1:rnd:sat 0x11 0xdf 0x95 0xee # CHECK: r17 += mpy(r21.l, r31.l):<<1 0x31 0xdf 0x95 0xee # CHECK: r17 += mpy(r21.l, r31.h):<<1 0x51 0xdf 0x95 0xee # CHECK: r17 += mpy(r21.h, r31.l):<<1 0x71 0xdf 0x95 0xee # CHECK: r17 += mpy(r21.h, r31.h):<<1 0x91 0xdf 0x95 0xee # CHECK: r17 += mpy(r21.l, r31.l):<<1:sat 0xb1 0xdf 0x95 0xee # CHECK: r17 += mpy(r21.l, r31.h):<<1:sat 0xd1 0xdf 0x95 0xee # CHECK: r17 += mpy(r21.h, r31.l):<<1:sat 0xf1 0xdf 0x95 0xee # CHECK: r17 += mpy(r21.h, r31.h):<<1:sat 0x11 0xdf 0xb5 0xee # CHECK: r17 -= mpy(r21.l, r31.l):<<1 0x31 0xdf 0xb5 0xee # CHECK: r17 -= mpy(r21.l, r31.h):<<1 0x51 0xdf 0xb5 0xee # CHECK: r17 -= mpy(r21.h, r31.l):<<1 0x71 0xdf 0xb5 0xee # CHECK: r17 -= mpy(r21.h, r31.h):<<1 0x91 0xdf 0xb5 0xee # CHECK: r17 -= mpy(r21.l, r31.l):<<1:sat 0xb1 0xdf 0xb5 0xee # CHECK: r17 -= mpy(r21.l, r31.h):<<1:sat 0xd1 0xdf 0xb5 0xee # CHECK: r17 -= mpy(r21.h, r31.l):<<1:sat 0xf1 0xdf 0xb5 0xee # CHECK: r17 -= mpy(r21.h, r31.h):<<1:sat 0x10 0xdf 0xd5 0xe4 # CHECK: r17:16 = mpyu(r21.l, r31.l):<<1 0x30 0xdf 0xd5 0xe4 # CHECK: r17:16 = mpyu(r21.l, r31.h):<<1 0x50 0xdf 0xd5 0xe4 # CHECK: r17:16 = mpyu(r21.h, r31.l):<<1 0x70 0xdf 0xd5 0xe4 # CHECK: r17:16 = mpyu(r21.h, r31.h):<<1 0x10 0xdf 0xd5 0xe6 # CHECK: r17:16 += mpyu(r21.l, r31.l):<<1 0x30 0xdf 0xd5 0xe6 # CHECK: r17:16 += mpyu(r21.l, r31.h):<<1 0x50 0xdf 0xd5 0xe6 # CHECK: r17:16 += mpyu(r21.h, r31.l):<<1 0x70 0xdf 0xd5 0xe6 # CHECK: r17:16 += mpyu(r21.h, r31.h):<<1 0x10 0xdf 0xf5 0xe6 # CHECK: r17:16 -= mpyu(r21.l, r31.l):<<1 0x30 0xdf 0xf5 0xe6 # CHECK: r17:16 -= mpyu(r21.l, r31.h):<<1 0x50 0xdf 0xf5 0xe6 # CHECK: r17:16 -= mpyu(r21.h, r31.l):<<1 0x70 0xdf 0xf5 0xe6 # CHECK: r17:16 -= mpyu(r21.h, r31.h):<<1 0x11 0xdf 0xd5 0xec # CHECK: r17 = mpyu(r21.l, r31.l):<<1 0x31 0xdf 0xd5 0xec # CHECK: r17 = mpyu(r21.l, r31.h):<<1 0x51 0xdf 0xd5 0xec # CHECK: r17 = mpyu(r21.h, r31.l):<<1 0x71 0xdf 0xd5 0xec # CHECK: r17 = mpyu(r21.h, r31.h):<<1 0x11 0xdf 0xd5 0xee # CHECK: r17 += mpyu(r21.l, r31.l):<<1 0x31 0xdf 0xd5 0xee # CHECK: r17 += mpyu(r21.l, r31.h):<<1 0x51 0xdf 0xd5 0xee # CHECK: r17 += mpyu(r21.h, r31.l):<<1 0x71 0xdf 0xd5 0xee # CHECK: r17 += mpyu(r21.h, r31.h):<<1 0x11 0xdf 0xf5 0xee # CHECK: r17 -= mpyu(r21.l, r31.l):<<1 0x31 0xdf 0xf5 0xee # CHECK: r17 -= mpyu(r21.l, r31.h):<<1 0x51 0xdf 0xf5 0xee # CHECK: r17 -= mpyu(r21.h, r31.l):<<1 0x71 0xdf 0xf5 0xee # CHECK: r17 -= mpyu(r21.h, r31.h):<<1 0x31 0xdf 0x15 0xed # CHECK: r17 = mpy(r21, r31) 0x31 0xdf 0x35 0xed # CHECK: r17 = mpy(r21, r31):rnd 0x31 0xdf 0x55 0xed # CHECK: r17 = mpyu(r21, r31) 0x31 0xdf 0x75 0xed # CHECK: r17 = mpysu(r21, r31) 0x11 0xdf 0xb5 0xed # CHECK: r17 = mpy(r21, r31.h):<<1:sat 0x31 0xdf 0xb5 0xed # CHECK: r17 = mpy(r21, r31.l):<<1:sat 0x11 0xdf 0xf5 0xed # CHECK: r17 = mpy(r21, r31):<<1:sat 0x91 0xdf 0xb5 0xed # CHECK: r17 = mpy(r21, r31.h):<<1:rnd:sat 0x91 0xdf 0xf5 0xed # CHECK: r17 = mpy(r21, r31.l):<<1:rnd:sat 0x11 0xdf 0x75 0xef # CHECK: r17 += mpy(r21, r31):<<1:sat 0x31 0xdf 0x75 0xef # CHECK: r17 -= mpy(r21, r31):<<1:sat 0x10 0xdf 0x15 0xe5 # CHECK: r17:16 = mpy(r21, r31) 0x10 0xdf 0x55 0xe5 # CHECK: r17:16 = mpyu(r21, r31) 0x10 0xdf 0x15 0xe7 # CHECK: r17:16 += mpy(r21, r31) 0x10 0xdf 0x35 0xe7 # CHECK: r17:16 -= mpy(r21, r31) 0x10 0xdf 0x55 0xe7 # CHECK: r17:16 += mpyu(r21, r31) 0x10 0xdf 0x75 0xe7 # CHECK: r17:16 -= mpyu(r21, r31)