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