aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGen/Blackfin/load-i16.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGen/Blackfin/load-i16.ll')
-rw-r--r--test/CodeGen/Blackfin/load-i16.ll13
1 files changed, 13 insertions, 0 deletions
diff --git a/test/CodeGen/Blackfin/load-i16.ll b/test/CodeGen/Blackfin/load-i16.ll
new file mode 100644
index 000000000000..eb18d410d088
--- /dev/null
+++ b/test/CodeGen/Blackfin/load-i16.ll
@@ -0,0 +1,13 @@
+; RUN: llc < %s -march=bfin -verify-machineinstrs
+
+; This somewhat contrived function heavily exercises register classes
+; It can trick -join-cross-class-copies into making illegal joins
+
+define void @f(i16** nocapture %p) nounwind readonly {
+entry:
+ %tmp1 = load i16** %p ; <i16*> [#uses=1]
+ %tmp2 = load i16* %tmp1 ; <i16> [#uses=1]
+ %ptr = getelementptr i16* %tmp1, i16 %tmp2
+ store i16 %tmp2, i16* %ptr
+ ret void
+}