diff options
author | dim <dim@FreeBSD.org> | 2015-12-30 11:49:41 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2015-12-30 11:49:41 +0000 |
commit | 3176e97f130184ece0e1a21352c8124cc83ff24a (patch) | |
tree | 0a5b74c0b9ca73aded34df95c91fcaf3815230d8 /test/CodeGen/builtins-arm.c | |
parent | 1e9b8d38881c3213d1e67b0c47ab9b2c00721a5c (diff) | |
download | FreeBSD-src-3176e97f130184ece0e1a21352c8124cc83ff24a.zip FreeBSD-src-3176e97f130184ece0e1a21352c8124cc83ff24a.tar.gz |
Vendor import of clang trunk r256633:
https://llvm.org/svn/llvm-project/cfe/trunk@256633
Diffstat (limited to 'test/CodeGen/builtins-arm.c')
-rw-r--r-- | test/CodeGen/builtins-arm.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/test/CodeGen/builtins-arm.c b/test/CodeGen/builtins-arm.c index 2b81856..4cec84c 100644 --- a/test/CodeGen/builtins-arm.c +++ b/test/CodeGen/builtins-arm.c @@ -85,6 +85,44 @@ void prefetch(int i) { // CHECK: call {{.*}} @llvm.prefetch(i8* %{{.*}}, i32 1, i32 3, i32 0) } +unsigned mrc() { + // CHECK: define i32 @mrc() + // CHECK: [[R:%.*]] = {{.*}} call i32 @llvm.arm.mrc(i32 15, i32 0, i32 13, i32 0, i32 3) + // CHECK-NEXT: ret i32 [[R]] + return __builtin_arm_mrc(15, 0, 13, 0, 3); +} + +unsigned mrc2() { + // CHECK: define i32 @mrc2() + // CHECK: [[R:%.*]] = {{.*}} call i32 @llvm.arm.mrc2(i32 15, i32 0, i32 13, i32 0, i32 3) + // CHECK-NEXT: ret i32 [[R]] + return __builtin_arm_mrc2(15, 0, 13, 0, 3); +} + +void mcr(unsigned a) { + // CHECK: define void @mcr(i32 [[A:%.*]]) + // CHECK: call void @llvm.arm.mcr(i32 15, i32 0, i32 [[A]], i32 13, i32 0, i32 3) + __builtin_arm_mcr(15, 0, a, 13, 0, 3); +} + +void mcr2(unsigned a) { + // CHECK: define void @mcr2(i32 [[A:%.*]]) + // CHECK: call void @llvm.arm.mcr2(i32 15, i32 0, i32 [[A]], i32 13, i32 0, i32 3) + __builtin_arm_mcr2(15, 0, a, 13, 0, 3); +} + +void mcrr(unsigned a, unsigned b) { + // CHECK: define void @mcrr(i32 [[A:%.*]], i32 [[B:%.*]]) + // CHECK: call void @llvm.arm.mcrr(i32 15, i32 0, i32 [[A]], i32 [[B]], i32 0) + __builtin_arm_mcrr(15, 0, a, b, 0); +} + +void mcrr2(unsigned a, unsigned b) { + // CHECK: define void @mcrr2(i32 [[A:%.*]], i32 [[B:%.*]]) + // CHECK: call void @llvm.arm.mcrr2(i32 15, i32 0, i32 [[A]], i32 [[B]], i32 0) + __builtin_arm_mcrr2(15, 0, a, b, 0); +} + unsigned rsr() { // CHECK: [[V0:[%A-Za-z0-9.]+]] = {{.*}} call i32 @llvm.read_register.i32(metadata !7) // CHECK-NEXT: ret i32 [[V0]] |