1// RUN: %clang_cc1 -triple thumbv7-windows -fms-compatibility -emit-llvm -o - %s \
2// RUN:     | FileCheck %s -check-prefix CHECK-MSVC
3// RUN: %clang_cc1 -triple armv7-eabi -emit-llvm %s -o - \
4// RUN:     | FileCheck %s -check-prefix CHECK-EABI
5// REQUIRES: arm-registered-target
6
7void test_yield_intrinsic() {
8  __yield();
9}
10
11// CHECK-MSVC: call void @llvm.arm.hint(i32 1)
12// CHECK-EABI-NOT: call void @llvm.arm.hint(i32 1)
13
14void wfe() {
15  __wfe();
16}
17
18// CHECK-MSVC: call {{.*}} @llvm.arm.hint(i32 2)
19// CHECK-EABI-NOT: call {{.*}} @llvm.arm.hint(i32 2)
20
21void wfi() {
22  __wfi();
23}
24
25// CHECK-MSVC: call {{.*}} @llvm.arm.hint(i32 3)
26// CHECK-EABI-NOT: call {{.*}} @llvm.arm.hint(i32 3)
27
28void sev() {
29  __sev();
30}
31
32// CHECK-MSVC: call {{.*}} @llvm.arm.hint(i32 4)
33// CHECK-EABI-NOT: call {{.*}} @llvm.arm.hint(i32 4)
34
35void sevl() {
36  __sevl();
37}
38
39// CHECK-MSVC: call {{.*}} @llvm.arm.hint(i32 5)
40// CHECK-EABI-NOT: call {{.*}} @llvm.arm.hint(i32 5)
41
42