Revert "[LSR] Generate and use zero extends"
[oota-llvm.git] / test / MC / Disassembler / Hexagon / ld.txt
index 3ba6042696262b403cf019b597da519866de6acd..15c23b644886194ab48977e849c3e6fb36e5d033 100644 (file)
@@ -1,7 +1,11 @@
-# RUN: llvm-mc --triple hexagon -disassemble < %s | FileCheck %s
+# RUN: llvm-mc -triple hexagon -disassemble < %s | FileCheck %s
+# Hexagon Programmer's Reference Manual 11.5 LD
 
+# Load doubleword
 0x90 0xff 0xd5 0x3a
 # CHECK: r17:16 = memd(r21 + r31<<#3)
+0x10 0xc5 0xc0 0x49
+# CHECK: r17:16 = memd(##320)
 0xb0 0xe0 0xd5 0x99
 # CHECK: r17:16 = memd(r21 ++ #40:circ(m1))
 0x10 0xe2 0xd5 0x99
@@ -12,6 +16,8 @@
 # CHECK: r17:16 = memd(r21++m1)
 0x10 0xe0 0xd5 0x9f
 # CHECK: r17:16 = memd(r21 ++ m1:brev)
+
+# Load doubleword conditionally
 0xf0 0xff 0xd5 0x30
 # CHECK: if (p3) r17:16 = memd(r21+r31<<#3)
 0xf0 0xff 0xd5 0x31
 # CHECK: p3 = r5
 # CHECK-NEXT: if (!p3.new) r17:16 = memd(r21++#40)
 
+# Load byte
 0x91 0xff 0x15 0x3a
 # CHECK: r17 = memb(r21 + r31<<#3)
+0xb1 0xc2 0x00 0x49
+# CHECK: r17 = memb(##21)
 0xf1 0xc3 0x15 0x91
 # CHECK: r17 = memb(r21 + #31)
 0xb1 0xe0 0x15 0x99
@@ -57,6 +66,8 @@
 # CHECK: r17 = memb(r21++m1)
 0x11 0xe0 0x15 0x9f
 # CHECK: r17 = memb(r21 ++ m1:brev)
+
+# Load byte conditionally
 0xf1 0xff 0x15 0x30
 # CHECK: if (p3) r17 = memb(r21+r31<<#3)
 0xf1 0xff 0x15 0x31
 # CHECK: p3 = r5
 # CHECK-NEXT: if (!p3.new) r17 = memb(r21++#5)
 
+# Load halfword
 0x91 0xff 0x55 0x3a
 # CHECK: r17 = memh(r21 + r31<<#3)
+0x51 0xc5 0x40 0x49
+# CHECK: r17 = memh(##84)
 0xf1 0xc3 0x55 0x91
 # CHECK: r17 = memh(r21 + #62)
 0xb1 0xe0 0x55 0x99
 # CHECK: r17 = memh(r21++m1)
 0x11 0xe0 0x55 0x9f
 # CHECK: r17 = memh(r21 ++ m1:brev)
+
+# Load halfword conditionally
 0xf1 0xff 0x55 0x30
 # CHECK: if (p3) r17 = memh(r21+r31<<#3)
 0xf1 0xff 0x55 0x31
 # CHECK: p3 = r5
 # CHECK-NEXT: if (!p3.new) r17 = memh(r21++#10)
 
+# Load unsigned byte
 0x91 0xff 0x35 0x3a
 # CHECK: r17 = memub(r21 + r31<<#3)
+0xb1 0xc2 0x20 0x49
+# CHECK: r17 = memub(##21)
 0xf1 0xc3 0x35 0x91
 # CHECK: r17 = memub(r21 + #31)
 0xb1 0xe0 0x35 0x99
 # CHECK: r17 = memub(r21++m1)
 0x11 0xe0 0x35 0x9f
 # CHECK: r17 = memub(r21 ++ m1:brev)
+
+# Load unsigned byte conditionally
 0xf1 0xff 0x35 0x30
 # CHECK: if (p3) r17 = memub(r21+r31<<#3)
 0xf1 0xff 0x35 0x31
 # CHECK: p3 = r5
 # CHECK-NEXT: if (!p3.new) r17 = memub(r21++#5)
 
+# Load unsigned halfword
 0x91 0xff 0x75 0x3a
 # CHECK: r17 = memuh(r21 + r31<<#3)
+0x51 0xc5 0x60 0x49
+# CHECK: r17 = memuh(##84)
 0xb1 0xc2 0x75 0x91
 # CHECK: r17 = memuh(r21 + #42)
 0xb1 0xe0 0x75 0x99
 # CHECK: r17 = memuh(r21++m1)
 0x11 0xe0 0x75 0x9f
 # CHECK: r17 = memuh(r21 ++ m1:brev)
+
+# Load unsigned halfword conditionally
 0xf1 0xff 0x75 0x30
 # CHECK: if (p3) r17 = memuh(r21+r31<<#3)
 0xf1 0xff 0x75 0x31
 # CHECK: p3 = r5
 # CHECK-NEXT: if (!p3.new) r17 = memuh(r21++#10)
 
+# Load word
 0x91 0xff 0x95 0x3a
 # CHECK: r17 = memw(r21 + r31<<#3)
+0x91 0xc2 0x80 0x49
+# CHECK: r17 = memw(##80)
 0xb1 0xc2 0x95 0x91
 # CHECK: r17 = memw(r21 + #84)
 0xb1 0xe0 0x95 0x99
 # CHECK: r17 = memw(r21++m1)
 0x11 0xe0 0x95 0x9f
 # CHECK: r17 = memw(r21 ++ m1:brev)
+
+# Load word conditionally
 0xf1 0xff 0x95 0x30
 # CHECK: if (p3) r17 = memw(r21+r31<<#3)
 0xf1 0xff 0x95 0x31
 # CHECK: p3 = r5
 # CHECK-NEXT: if (!p3.new) r17 = memw(r21++#20)
 
+# Deallocate stack frame
 0x1e 0xc0 0x1e 0x90
 # CHECK: deallocframe
+
+# Deallocate stack frame and return
 0x1e 0xc0 0x1e 0x96
 # CHECK: dealloc_return
 0x03 0x40 0x45 0x85 0x1e 0xcb 0x1e 0x96
 0x03 0x40 0x45 0x85 0x1e 0xfb 0x1e 0x96
 # CHECK: p3 = r5
 # CHECK-NEXT: if (!p3.new) dealloc_return:t
+
+# Load and unpack bytes to halfwords
+0xf1 0xc3 0x35 0x90
+# CHECK: r17 = membh(r21 + #62)
+0xf1 0xc3 0x75 0x90
+# CHECK: r17 = memubh(r21 + #62)
+0xf0 0xc3 0xb5 0x90
+# CHECK: r17:16 = memubh(r21 + #124)
+0xf0 0xc3 0xf5 0x90
+# CHECK: r17:16 = membh(r21 + #124)
+0xb1 0xe0 0x35 0x98
+# CHECK: r17 = membh(r21 ++ #10:circ(m1))
+0x11 0xe2 0x35 0x98
+# CHECK: r17 = membh(r21 ++ I:circ(m1))
+0xb1 0xe0 0x75 0x98
+# CHECK: r17 = memubh(r21 ++ #10:circ(m1))
+0x11 0xe2 0x75 0x98
+# CHECK: r17 = memubh(r21 ++ I:circ(m1))
+0xb0 0xe0 0xf5 0x98
+# CHECK: r17:16 = membh(r21 ++ #20:circ(m1))
+0x10 0xe2 0xf5 0x98
+# CHECK: r17:16 = membh(r21 ++ I:circ(m1))
+0xb0 0xe0 0xb5 0x98
+# CHECK: r17:16 = memubh(r21 ++ #20:circ(m1))
+0x10 0xe2 0xb5 0x98
+# CHECK: r17:16 = memubh(r21 ++ I:circ(m1))
+0xb1 0xc0 0x35 0x9a
+# CHECK: r17 = membh(r21++#10)
+0xb1 0xc0 0x75 0x9a
+# CHECK: r17 = memubh(r21++#10)
+0xb0 0xc0 0xb5 0x9a
+# CHECK: r17:16 = memubh(r21++#20)
+0xb0 0xc0 0xf5 0x9a
+# CHECK: r17:16 = membh(r21++#20)
+0x11 0xe0 0x35 0x9c
+# CHECK: r17 = membh(r21++m1)
+0x11 0xe0 0x75 0x9c
+# CHECK: r17 = memubh(r21++m1)
+0x10 0xe0 0xf5 0x9c
+# CHECK: r17:16 = membh(r21++m1)
+0x10 0xe0 0xb5 0x9c
+# CHECK: r17:16 = memubh(r21++m1)
+0x11 0xe0 0x35 0x9e
+# CHECK: r17 = membh(r21 ++ m1:brev)
+0x11 0xe0 0x75 0x9e
+# CHECK: r17 = memubh(r21 ++ m1:brev)
+0x10 0xe0 0xb5 0x9e
+# CHECK: r17:16 = memubh(r21 ++ m1:brev)
+0x10 0xe0 0xf5 0x9e
+# CHECK: r17:16 = membh(r21 ++ m1:brev)