diff options
| author | Ranjeet Singh <Ranjeet.Singh@arm.com> | 2016-06-13 10:43:50 +0000 |
|---|---|---|
| committer | Ranjeet Singh <Ranjeet.Singh@arm.com> | 2016-06-13 10:43:50 +0000 |
| commit | 8feacb330db3451372aa3052ff63211aee5953dc (patch) | |
| tree | 08e422d3f5afe71546f719bd0b3ec2c277869943 /llvm/test | |
| parent | f0980e4dc01990c1e3befb12d354805eb00864e1 (diff) | |
| download | bcm5719-llvm-8feacb330db3451372aa3052ff63211aee5953dc.tar.gz bcm5719-llvm-8feacb330db3451372aa3052ff63211aee5953dc.zip | |
[ARM] Add mrrc/mrrc2 co-processor intrinsics
MRRC/MRRC2 instruction writes to two registers. The
intrinsic definition returns a single uint64_t to
represent the write, this is a compact way of
representing a write to two 32 bit registers,
the alternative might have been two return a
struct of 2 uint32_t's but this isn't as nice.
Differential Revision:
llvm-svn: 272544
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/CodeGen/ARM/intrinsics-coprocessor.ll | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/ARM/intrinsics-coprocessor.ll b/llvm/test/CodeGen/ARM/intrinsics-coprocessor.ll index ccaf5c29fad..8fea49b39fb 100644 --- a/llvm/test/CodeGen/ARM/intrinsics-coprocessor.ll +++ b/llvm/test/CodeGen/ARM/intrinsics-coprocessor.ll @@ -35,6 +35,10 @@ entry: tail call void @llvm.arm.stc2(i32 7, i32 3, i8* %i) nounwind ; CHECK: stc2l p7, c3, [r{{[0-9]+}}] tail call void @llvm.arm.stc2l(i32 7, i32 3, i8* %i) nounwind + ; CHECK: mrrc p1, #2, r{{[0-9]+}}, r{{[0-9]+}}, c3 + %2 = tail call { i32, i32 } @llvm.arm.mrrc(i32 1, i32 2, i32 3) nounwind + ; CHECK: mrrc2 p1, #2, r{{[0-9]+}}, r{{[0-9]+}}, c3 + %3 = tail call { i32, i32 } @llvm.arm.mrrc2(i32 1, i32 2, i32 3) nounwind ret void } @@ -69,3 +73,7 @@ declare i32 @llvm.arm.mrc2(i32, i32, i32, i32, i32) nounwind declare void @llvm.arm.mcr(i32, i32, i32, i32, i32, i32) nounwind declare i32 @llvm.arm.mrc(i32, i32, i32, i32, i32) nounwind + +declare { i32, i32 } @llvm.arm.mrrc(i32, i32, i32) nounwind + +declare { i32, i32 } @llvm.arm.mrrc2(i32, i32, i32) nounwind |

