# RUN: llvm-mc --triple hexagon -disassemble < %s | FileCheck %s 0xd0 0xc0 0x94 0x80 # CHECK: r17:16 = abs(r21:20) 0x91 0xc0 0x95 0x8c # CHECK: r17 = abs(r21) 0xb1 0xc0 0x95 0x8c # CHECK: r17 = abs(r21):sat 0xff 0xd1 0x35 0xdb # CHECK: r17 = add(r21, add(r31, #23)) 0xff 0xd1 0xb5 0xdb # CHECK: r17 = add(r21, sub(#23, r31)) 0xf1 0xc2 0x15 0xe2 # CHECK: r17 += add(r21, #23) 0xf1 0xc2 0x95 0xe2 # CHECK: r17 -= add(r21, #23) 0x31 0xdf 0x15 0xef # CHECK: r17 += add(r21, r31) 0x31 0xdf 0x95 0xef # CHECK: r17 -= add(r21, r31) 0xf0 0xde 0x14 0xd3 # CHECK: r17:16 = add(r21:20, r31:30) 0x11 0xd5 0x1f 0xd5 # CHECK: r17 = add(r21.l, r31.l) 0x51 0xd5 0x1f 0xd5 # CHECK: r17 = add(r21.l, r31.h) 0x91 0xd5 0x1f 0xd5 # CHECK: r17 = add(r21.l, r31.l):sat 0xd1 0xd5 0x1f 0xd5 # CHECK: r17 = add(r21.l, r31.h):sat 0x11 0xd5 0x5f 0xd5 # CHECK: r17 = add(r21.l, r31.l):<<16 0x31 0xd5 0x5f 0xd5 # CHECK: r17 = add(r21.l, r31.h):<<16 0x51 0xd5 0x5f 0xd5 # CHECK: r17 = add(r21.h, r31.l):<<16 0x71 0xd5 0x5f 0xd5 # CHECK: r17 = add(r21.h, r31.h):<<16 0x91 0xd5 0x5f 0xd5 # CHECK: r17 = add(r21.l, r31.l):sat:<<16 0xb1 0xd5 0x5f 0xd5 # CHECK: r17 = add(r21.l, r31.h):sat:<<16 0xd1 0xd5 0x5f 0xd5 # CHECK: r17 = add(r21.h, r31.l):sat:<<16 0xf1 0xd5 0x5f 0xd5 # CHECK: r17 = add(r21.h, r31.h):sat:<<16 0x90 0xc0 0x94 0x80 # CHECK: r17:16 = not(r21:20) 0xf0 0xde 0x14 0xd3 # CHECK: r17:16 = add(r21:20, r31:30) 0xb0 0xde 0x74 0xd3 # CHECK: r17:16 = add(r21:20, r31:30):sat 0xd0 0xde 0x74 0xd3 # CHECK: r17:16 = add(r21:20, r31:30):raw:lo 0xf0 0xde 0x74 0xd3 # CHECK: r17:16 = add(r21:20, r31:30):raw:hi 0x10 0xde 0xf4 0xd3 # CHECK: r17:16 = and(r21:20, r31:30) 0x30 0xd4 0xfe 0xd3 # CHECK: r17:16 = and(r21:20, ~r31:30) 0x50 0xde 0xf4 0xd3 # CHECK: r17:16 = or(r21:20, r31:30) 0x70 0xd4 0xfe 0xd3 # CHECK: r17:16 = or(r21:20, ~r31:30) 0x10 0xde 0x94 0xca # CHECK: r17:16 ^= xor(r21:20, r31:30) 0xf1 0xc3 0x15 0xda # CHECK: r17 |= and(r21, #31) 0xf5 0xc3 0x51 0xda # CHECK: r17 = or(r21, and(r17, #31)) 0xf1 0xc3 0x95 0xda # CHECK: r17 |= or(r21, #31) 0x11 0xdf 0x35 0xef # CHECK: r17 |= and(r21, ~r31) 0x31 0xdf 0x35 0xef # CHECK: r17 &= and(r21, ~r31) 0x51 0xdf 0x35 0xef # CHECK: r17 ^= and(r21, ~r31) 0x11 0xdf 0x55 0xef # CHECK: r17 &= and(r21, r31) 0x31 0xdf 0x55 0xef # CHECK: r17 &= or(r21, r31) 0x51 0xdf 0x55 0xef # CHECK: r17 &= xor(r21, r31) 0x71 0xdf 0x55 0xef # CHECK: r17 |= and(r21, r31) 0x71 0xdf 0x95 0xef # CHECK: r17 ^= xor(r21, r31) 0x11 0xdf 0xd5 0xef # CHECK: r17 |= or(r21, r31) 0x31 0xdf 0xd5 0xef # CHECK: r17 |= xor(r21, r31) 0x51 0xdf 0xd5 0xef # CHECK: r17 ^= and(r21, r31) 0x71 0xdf 0xd5 0xef # CHECK: r17 ^= or(r21, r31) 0x11 0xdf 0xd5 0xd5 # CHECK: r17 = max(r21, r31) 0x91 0xdf 0xd5 0xd5 # CHECK: r17 = maxu(r21, r31) 0x90 0xde 0xd4 0xd3 # CHECK: r17:16 = max(r21:20, r31:30) 0xb0 0xde 0xd4 0xd3 # CHECK: r17:16 = maxu(r21:20, r31:30) 0x11 0xd5 0xbf 0xd5 # CHECK: r17 = min(r21, r31) 0x91 0xd5 0xbf 0xd5 # CHECK: r17 = minu(r21, r31) 0xd0 0xd4 0xbe 0xd3 # CHECK: r17:16 = min(r21:20, r31:30) 0xf0 0xd4 0xbe 0xd3 # CHECK: r17:16 = minu(r21:20, r31:30) 0xf1 0xdf 0xf5 0xd3 # CHECK: r17 = modwrap(r21, r31) 0xb0 0xc0 0x94 0x80 # CHECK: r17:16 = neg(r21:20) 0xd1 0xc0 0x95 0x8c # CHECK: r17 = neg(r21):sat 0x11 0xdf 0xf5 0x8c # CHECK: r17 = cround(r21, #31) 0x91 0xdf 0xf5 0x8c # CHECK: r17 = round(r21, #31) 0xd1 0xdf 0xf5 0x8c # CHECK: r17 = round(r21, #31):sat 0x71 0xd5 0x1f 0xef # CHECK: r17 += sub(r21, r31) 0x11 0xd5 0x3f 0xd5 # CHECK: r17 = sub(r21.l, r31.l) 0x51 0xd5 0x3f 0xd5 # CHECK: r17 = sub(r21.l, r31.h) 0x91 0xd5 0x3f 0xd5 # CHECK: r17 = sub(r21.l, r31.l):sat 0xd1 0xd5 0x3f 0xd5 # CHECK: r17 = sub(r21.l, r31.h):sat 0x11 0xd5 0x7f 0xd5 # CHECK: r17 = sub(r21.l, r31.l):<<16 0x31 0xd5 0x7f 0xd5 # CHECK: r17 = sub(r21.l, r31.h):<<16 0x51 0xd5 0x7f 0xd5 # CHECK: r17 = sub(r21.h, r31.l):<<16 0x71 0xd5 0x7f 0xd5 # CHECK: r17 = sub(r21.h, r31.h):<<16 0x91 0xd5 0x7f 0xd5 # CHECK: r17 = sub(r21.l, r31.l):sat:<<16 0xb1 0xd5 0x7f 0xd5 # CHECK: r17 = sub(r21.l, r31.h):sat:<<16 0xd1 0xd5 0x7f 0xd5 # CHECK: r17 = sub(r21.h, r31.l):sat:<<16 0xf1 0xd5 0x7f 0xd5 # CHECK: r17 = sub(r21.h, r31.h):sat:<<16 0x10 0xc0 0x55 0x84 # CHECK: r17:16 = sxtw(r21) 0x90 0xde 0xf4 0xd3 # CHECK: r17:16 = xor(r21:20, r31:30)