# RUN: llvm-mc -arch=hexagon -filetype=obj %s | llvm-objdump -d - | FileCheck %s
#

# Currently ignore if there is one or two #'s

		r7 = memw(gp+#192)
# CHECK:	r7 = memw(gp+#192)

		r3:2 = memd(gp+#64)
# CHECK: 	r3:2 = memd(gp+#64)

		{ p3 = p1; r8 = #2; if (p3.new) memw(##8) = r8.new }
# CHECK:	if (p3.new) memw({{..}}8) = r8

		{ p3 = p1; r8 = #2; if (!p3.new) memw(##8) = r8.new }
# CHECK:	if (!p3.new) memw({{..}}8) = r8.new

		{ r8 = #2; if (p3) memw(##8) = r8.new }
# CHECK:	if (p3) memw({{..}}8) = r8.new

		{ r8 = #2; if (!p3) memw(##8) = r8.new }
# CHECK:	if (!p3) memw({{..}}8) = r8.new

		{ p3 = p1; r8 = #2; if (p3.new) memh(##8) = r8.new }
# CHECK:	if (p3.new) memh({{..}}8) = r8.new

		{ p3 = p1; r8 = #2; if (!p3.new) memh(##8) = r8.new }
# CHECK:	if (!p3.new) memh({{..}}8) = r8.new

		{ r8 = #2; if (p3) memh(##8) = r8.new }
# CHECK:	memh({{..}}8) = r8.new

		{ r8 = #2; if (!p3) memh(##8) = r8.new }
# CHECK:	if (!p3) memh({{..}}8) = r8.new

		{ p3 = p1; r8 = #2; if (p3.new) memb(##8) = r8.new }
# CHECK:	if (p3.new) memb({{..}}8) = r8.new

		{ p3 = p1; r8 = #2; if (!p3.new) memb(##8) = r8.new }
# CHECK:	if (!p3.new) memb({{..}}8) = r8.new

		{ r8 = #2; if (p3) memb(##8) = r8.new }
# CHECK:	if (p3) memb({{..}}8) = r8.new

		{ r8 = #2; if (!p3) memb(##8) = r8.new }
# CHECK:	if (!p3) memb({{..}}8) = r8.new

		{ if (p3) memw(##8) = r8 }
# CHECK:	if (p3) memw({{..}}8) = r8

		{ if (!p3) memw(##8) = r8 }
# CHECK:	if (!p3) memw({{..}}8) = r8

		{ p3 = p1; if (p3.new) memw(##8) = r8 }
# CHECK:	if (p3.new) memw({{..}}8) = r8

		{ p3 = p1; if (!p3.new) memw(##8) = r8 }
# CHECK:	if (!p3.new) memw({{..}}8) = r8


		if (!p2) r14 = memb(##48)
# CHECK:	if (!p2) r14 = memb({{..}}48)

		if (p2) r14 = memb(##48)
# CHECK:	if (p2) r14 = memb({{..}}48)

		{p2 = p0; if (!p2.new) r14 = memb(##48) }
# CHECK:	if (!p2.new) r14 = memb({{..}}48)

		{p3 = p2; if (p3.new) r14 = memb(##48) }
# CHECK:	if (p3.new) r14 = memb({{..}}48)


		if (!p2) r14 = memh(##48)
# CHECK:	if (!p2) r14 = memh({{..}}48)

		if (p2) r14 = memh(##48)
# CHECK:	if (p2) r14 = memh({{..}}48)

		{p2 = p0; if (!p2.new) r14 = memh(##48) }
# CHECK:	if (!p2.new) r14 = memh({{..}}48)

		{p3 = p2; if (p3.new) r14 = memh(##48) }
# CHECK:	if (p3.new) r14 = memh({{..}}48)


		if (!p2) r14 = memub(##48)
# CHECK:	if (!p2) r14 = memub({{..}}48)

		if (p2) r14 = memub(##48)
# CHECK:	if (p2) r14 = memub({{..}}48)

		{p2 = p0; if (!p2.new) r14 = memub(##48) }
# CHECK:	if (!p2.new) r14 = memub({{..}}48)

		{p3 = p2; if (p3.new) r14 = memub(##48) }
# CHECK:	if (p3.new) r14 = memub({{..}}48)


		if (!p2) r14 = memuh(##48)
# CHECK:	if (!p2) r14 = memuh({{..}}48)

		if (p2) r14 = memuh(##48)
# CHECK:	if (p2) r14 = memuh({{..}}48)

		{p2 = p0; if (!p2.new) r14 = memuh(##48) }
# CHECK:	if (!p2.new) r14 = memuh({{..}}48)

		{p3 = p2; if (p3.new) r14 = memuh(##48) }
# CHECK:	r14 = memuh({{..}}48)


		if (!p2) r14 = memw(##48)
# CHECK:	if (!p2) r14 = memw({{..}}48)

		if (p2) r14 = memw(##48)
# CHECK:	if (p2) r14 = memw({{..}}48)

		{p2 = p0; if (!p2.new) r14 = memw(##48) }
# CHECK:	if (!p2.new) r14 = memw({{..}}48)

		{p3 = p2; if (p3.new) r14 = memw(##48) }
# CHECK:	if (p3.new) r14 = memw({{..}}48)

		r7 = memh(##32)
# CHECK: 	r7 = memh(##32)
		r7 = memuh(##32)
# CHECK: 	r7 = memuh(##32)

		memd(##32) = r15:14
# CHECK: 	memd(##32) = r15:14

		{r2 = #9; memw(##32) = r2.new}
# CHECK:	memw(##32) = r2.new

		{r2 = #9; memb(##32) = r2.new}
# CHECK:	memb(##32) = r2.new

		memw(##32) = r15
# CHECK: 	memw(##32) = r15

		memh(##32) = r16
# CHECK: 	memh(##32) = r16

		memb(##32) = r17
# CHECK: 	memb(##32) = r17


		r3:2 = interleave(r31:30)
# CHECK:	r3:2 = interleave(r31:30)
