xref: /minix3/external/bsd/llvm/dist/clang/test/CodeGen/builtins-arm-microsoft.c (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
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 Sambuc void 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 Sambuc void 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 Sambuc void 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 Sambuc void 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 Sambuc void 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