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