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