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 | |
7 | void 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 | |
14 | void 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 | |
21 | void 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 | |
28 | void 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 | |
35 | void 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 | |