aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGen/Hexagon/bank-conflict-load.mir
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGen/Hexagon/bank-conflict-load.mir')
-rw-r--r--test/CodeGen/Hexagon/bank-conflict-load.mir28
1 files changed, 28 insertions, 0 deletions
diff --git a/test/CodeGen/Hexagon/bank-conflict-load.mir b/test/CodeGen/Hexagon/bank-conflict-load.mir
new file mode 100644
index 0000000000000..fe7aac19320ce
--- /dev/null
+++ b/test/CodeGen/Hexagon/bank-conflict-load.mir
@@ -0,0 +1,28 @@
+# RUN: llc -march=hexagon -run-pass post-RA-sched %s -o - | FileCheck %s
+
+# The two loads from %a (%r0) can cause a bank conflict. Check that they
+# are not scheduled next to each other.
+
+# CHECK: L2_loadri_io %r0, 8
+# CHECK: L2_loadri_io killed %r1, 0
+# CHECK: L2_loadri_io killed %r0, 12
+
+--- |
+ define void @foo(i32* %a, i32* %b) {
+ ret void
+ }
+...
+
+---
+name: foo
+tracksRegLiveness: true
+
+body: |
+ bb.0:
+ liveins: %r0, %r1
+
+ %r2 = L2_loadri_io %r0, 8 :: (load 4 from %ir.a)
+ %r3 = L2_loadri_io killed %r0, 12 :: (load 4 from %ir.a)
+ %r4 = L2_loadri_io killed %r1, 0 :: (load 4 from %ir.b)
+...
+