aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGen/builtins-arm.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGen/builtins-arm.c')
-rw-r--r--test/CodeGen/builtins-arm.c40
1 files changed, 39 insertions, 1 deletions
diff --git a/test/CodeGen/builtins-arm.c b/test/CodeGen/builtins-arm.c
index 937e1d962594..a51df15ce56b 100644
--- a/test/CodeGen/builtins-arm.c
+++ b/test/CodeGen/builtins-arm.c
@@ -19,12 +19,50 @@ void test_eh_return_data_regno()
res = __builtin_eh_return_data_regno(1); // CHECK: store volatile i32 1
}
+void nop() {
+ __builtin_arm_nop();
+}
+
+// CHECK: call {{.*}} @llvm.arm.hint(i32 0)
+
+void yield() {
+ __builtin_arm_yield();
+}
+
+// CHECK: call {{.*}} @llvm.arm.hint(i32 1)
+
+void wfe() {
+ __builtin_arm_wfe();
+}
+
+// CHECK: call {{.*}} @llvm.arm.hint(i32 2)
+
+void wfi() {
+ __builtin_arm_wfi();
+}
+
+// CHECK: call {{.*}} @llvm.arm.hint(i32 3)
+
+void sev() {
+ __builtin_arm_sev();
+}
+
+// CHECK: call {{.*}} @llvm.arm.hint(i32 4)
+
void sevl() {
__builtin_arm_sevl();
}
-// CHECK: call {{.*}} @llvm.arm.sevl
+
+// CHECK: call {{.*}} @llvm.arm.hint(i32 5)
void test_barrier() {
__builtin_arm_dmb(1); //CHECK: call {{.*}} @llvm.arm.dmb(i32 1)
__builtin_arm_dsb(2); //CHECK: call {{.*}} @llvm.arm.dsb(i32 2)
+ __builtin_arm_isb(3); //CHECK: call {{.*}} @llvm.arm.isb(i32 3)
+}
+
+// CHECK: call {{.*}} @llvm.arm.rbit(i32 %a)
+
+unsigned rbit(unsigned a) {
+ return __builtin_arm_rbit(a);
}