diff options
| author | Colin LeMahieu <colinl@codeaurora.org> | 2015-11-13 01:46:06 +0000 |
|---|---|---|
| committer | Colin LeMahieu <colinl@codeaurora.org> | 2015-11-13 01:46:06 +0000 |
| commit | fa5558307b31f9cb996a8e906b273800e68363f4 (patch) | |
| tree | accab3b56c9083bd54352b6b1d924d5691a44906 /llvm | |
| parent | 5af7ace4ee9397fe9e1738a144b196fd23868cef (diff) | |
| download | bcm5719-llvm-fa5558307b31f9cb996a8e906b273800e68363f4.tar.gz bcm5719-llvm-fa5558307b31f9cb996a8e906b273800e68363f4.zip | |
[Hexagon] NFC. Adding a number of packet correctness tests.
llvm-svn: 253000
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/test/MC/Hexagon/capitalizedEndloop.s | 29 | ||||
| -rw-r--r-- | llvm/test/MC/Hexagon/dcfetch.s | 15 | ||||
| -rw-r--r-- | llvm/test/MC/Hexagon/empty_asm.s | 15 | ||||
| -rw-r--r-- | llvm/test/MC/Hexagon/endloop.s | 19 | ||||
| -rw-r--r-- | llvm/test/MC/Hexagon/relaxed_newvalue.s | 10 |
5 files changed, 88 insertions, 0 deletions
diff --git a/llvm/test/MC/Hexagon/capitalizedEndloop.s b/llvm/test/MC/Hexagon/capitalizedEndloop.s new file mode 100644 index 00000000000..d20ff34de6f --- /dev/null +++ b/llvm/test/MC/Hexagon/capitalizedEndloop.s @@ -0,0 +1,29 @@ +# RUN: llvm-mc -triple=hexagon -filetype=obj %s | llvm-objdump -d -r - | FileCheck %s +# + +# Verify that capitaizled endloops work + + { R0 = mpyi(R0,R0) } : endloop0 + { R0 = mpyi(R0,R0) } : ENDLOOP0 + { R0 = mpyi(R0,R0) }:endloop0 + + { R0 = mpyi(R0,R0) } : endloop1 + { R0 = mpyi(R0,R0) } : ENDLOOP1 + { R0 = mpyi(R0,R0) }:endloop1 + + { R0 = mpyi(R0,R0) } : endloop0 : endloop1 + { R0 = mpyi(R0,R0) } : ENDLOOP0 : ENDLOOP1 + { R0 = mpyi(R0,R0) }:endloop0:endloop1 + +# CHECK: r0 = mpyi(r0, r0) +# CHECK: :endloop0 +# CHECK: :endloop0 +# CHECK: :endloop0 +# CHECK: :endloop1 +# CHECK: :endloop1 +# CHECK: :endloop1 +# CHECK: :endloop0 :endloop1 +# CHECK: :endloop0 :endloop1 +# CHECK: :endloop0 :endloop1 + + diff --git a/llvm/test/MC/Hexagon/dcfetch.s b/llvm/test/MC/Hexagon/dcfetch.s new file mode 100644 index 00000000000..bf4349d95c3 --- /dev/null +++ b/llvm/test/MC/Hexagon/dcfetch.s @@ -0,0 +1,15 @@ +# RUN: llvm-mc -triple=hexagon -filetype=obj -mno-pairing %s -o %t; llvm-objdump -d %t | FileCheck %s + +# Check that DCFETCH is correctly shuffled. + + { dcfetch(r2 + #0); r1 = memw(r2) } +# CHECK: 9402c000 + +# Bug 17424: This should be a legal packet +{ + P3 = SP1LOOP0(#8,R18) + R7:6 = MEMUBH(R4++#4) + R13:12 = VALIGNB(R11:10,R9:8,P2) + DCFETCH(R5+#(8+0)) +} +# CHECK-NOT: error: diff --git a/llvm/test/MC/Hexagon/empty_asm.s b/llvm/test/MC/Hexagon/empty_asm.s new file mode 100644 index 00000000000..10b30ff558e --- /dev/null +++ b/llvm/test/MC/Hexagon/empty_asm.s @@ -0,0 +1,15 @@ +# RUN: llvm-mc -triple=hexagon -filetype=asm %s -o - | FileCheck %s + +# Verify empty packets aren't printed +barrier +{} +barrier +# CHECK: { +# CHECK-NEXT: barrier +# CHECK-NEXT: } +# CHECK-NOT: } +# CHECK: { +# CHECK-NEXT: barrier +# CHECK-NEXT: } + + diff --git a/llvm/test/MC/Hexagon/endloop.s b/llvm/test/MC/Hexagon/endloop.s new file mode 100644 index 00000000000..303f84fb14f --- /dev/null +++ b/llvm/test/MC/Hexagon/endloop.s @@ -0,0 +1,19 @@ +# RUN: llvm-mc -triple=hexagon -filetype=asm %s 2>%t; FileCheck %s <%t + +# Check that a branch in an end-loop packet is caught. + +1: +{ + r0 = #1 + p0 = cmp.eq (r1, r2) + if (p0) jump 1b +}:endloop0 + +2: +{ + r0 = #1 + p0 = cmp.eq (r1, r2) + if (p0) jump 2b +}:endloop1 + +# CHECK: rror: packet marked with `:endloop{{.}}' cannot contain instructions that modify register diff --git a/llvm/test/MC/Hexagon/relaxed_newvalue.s b/llvm/test/MC/Hexagon/relaxed_newvalue.s new file mode 100644 index 00000000000..65fbd312e0a --- /dev/null +++ b/llvm/test/MC/Hexagon/relaxed_newvalue.s @@ -0,0 +1,10 @@ +# RUN: llvm-mc -triple=hexagon -filetype=obj %s | llvm-objdump -d - | FileCheck %s +# Make sure relaxation doesn't hinder newvalue calculation + +#CHECK: r18 = add(r2, #-6) +#CHECK-NEXT: immext(#0) +#CHECK-NEXT: if (!cmp.gt(r18.new, #1)) jump:t +{ + r18 = add(r2, #-6) + if (!cmp.gt(r18.new, #1)) jump:t .unknown +} |

