[clang] Handle __declspec() attributes in using
[llvm-project.git] / clang / test / CodeGen / PowerPC / builtins-ppc-xlcompat-move-tofrom-regs.c
blobacb3efb8291fa0e6da087c7d69bcf3ca5d1d8941
1 // RUN: %clang_cc1 -O2 -triple powerpc64-unknown-linux-gnu \
2 // RUN: -emit-llvm %s -o - -target-cpu pwr7 | FileCheck %s
3 // RUN: %clang_cc1 -O2 -triple powerpc64le-unknown-linux-gnu \
4 // RUN: -emit-llvm %s -o - -target-cpu pwr8 | FileCheck %s
5 // RUN: %clang_cc1 -O2 -triple powerpc-unknown-aix \
6 // RUN: -emit-llvm %s -o - -target-cpu pwr7 | \
7 // RUN: FileCheck %s --check-prefix=CHECK-32BIT
8 // RUN: %clang_cc1 -O2 -triple powerpc64-unknown-aix \
9 // RUN: -emit-llvm %s -o - -target-cpu pwr7 | FileCheck %s
11 extern unsigned long ula;
13 unsigned int test_mftbu(void) {
14 // CHECK-LABEL: @test_mftbu
15 // CHECK: %0 = tail call i32 @llvm.ppc.mftbu()
16 return __mftbu();
19 unsigned long test_mfmsr(void) {
20 // CHECK-LABEL: @test_mfmsr
21 // CHECK: %0 = tail call i32 @llvm.ppc.mfmsr()
22 return __mfmsr();
25 void test_mtmsr(void) {
26 // CHECK-LABEL: @test_mtmsr
27 // CHECK: tail call void @llvm.ppc.mtmsr(i32 %conv)
28 // CHECK-32BIT-LABEL: @test_mtmsr
29 // CHECK-32BIT: tail call void @llvm.ppc.mtmsr(i32 %0)
30 __mtmsr(ula);
33 unsigned long test_mfspr(void) {
34 // CHECK-LABEL: @test_mfspr
35 // CHECK: %0 = tail call i64 @llvm.ppc.mfspr.i64(i32 898)
36 return __mfspr(898);
39 void test_mtspr(void) {
40 // CHECK-LABEL: @test_mtspr
41 // CHECK: tail call void @llvm.ppc.mtspr.i64(i32 1, i64 %0)
42 __mtspr(1, ula);