diff options
Diffstat (limited to 'test/CodeGen/Hexagon/bank-conflict-load.mir')
| -rw-r--r-- | test/CodeGen/Hexagon/bank-conflict-load.mir | 28 |
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) +... + |
