summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen
diff options
context:
space:
mode:
authorKrzysztof Parzyszek <kparzysz@codeaurora.org>2016-08-19 16:57:05 +0000
committerKrzysztof Parzyszek <kparzysz@codeaurora.org>2016-08-19 16:57:05 +0000
commit639545b4d8aa3609346fdde711e6918bab129df2 (patch)
tree684e065937ec0aad924ba7b3b8a5af72d4e7cd86 /llvm/test/CodeGen
parenta871d3872ac55cfab62492e2a1fb7b056d204668 (diff)
downloadbcm5719-llvm-639545b4d8aa3609346fdde711e6918bab129df2.tar.gz
bcm5719-llvm-639545b4d8aa3609346fdde711e6918bab129df2.zip
[Hexagon] Enforce LLSC packetization rules
Ensure that load locked and store conditional instructions are only packetized with ALU32 instructions. Patch by Ben Craig. llvm-svn: 279272
Diffstat (limited to 'llvm/test/CodeGen')
-rw-r--r--llvm/test/CodeGen/Hexagon/intrinsics/llsc_bundling.ll12
1 files changed, 12 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/Hexagon/intrinsics/llsc_bundling.ll b/llvm/test/CodeGen/Hexagon/intrinsics/llsc_bundling.ll
new file mode 100644
index 00000000000..966945b66f4
--- /dev/null
+++ b/llvm/test/CodeGen/Hexagon/intrinsics/llsc_bundling.ll
@@ -0,0 +1,12 @@
+; RUN: llc -march=hexagon < %s
+target triple = "hexagon-unknown--elf"
+
+; Function Attrs: norecurse nounwind
+define void @_Z4lockv() #0 {
+entry:
+ %__shared_owners = alloca i32, align 4
+ %0 = cmpxchg weak i32* %__shared_owners, i32 0, i32 1 seq_cst seq_cst
+ ret void
+}
+
+attributes #0 = { nounwind }
OpenPOWER on IntegriCloud