phunix/external/bsd/llvm/dist/clang/test/CodeGen/arm-microsoft-intrinsics.c
Lionel Sambuc 0a6a1f1d05 NetBSD re-synchronization of the source tree
This brings our tree to NetBSD 7.0, as found on -current on the
10-10-2015.

This updates:
 - LLVM to 3.6.1
 - GCC to GCC 5.1
 - Replace minix/commands/zdump with usr.bin/zdump
 - external/bsd/libelf has moved to /external/bsd/elftoolchain/
 - Import ctwm
 - Drop sprintf from libminc

Change-Id: I149836ac18e9326be9353958bab9b266efb056f0
2016-01-13 20:32:14 +01:00

64 lines
1.8 KiB
C

// RUN: %clang_cc1 -triple thumbv7-windows -fms-compatibility -emit-llvm -o - %s \
// RUN: | FileCheck %s -check-prefix CHECK-MSVC
// RUN: not %clang_cc1 -triple armv7-eabi -Werror -S -o /dev/null %s 2>&1 \
// RUN: | FileCheck %s -check-prefix CHECK-EABI
void check__dmb(void) {
__dmb(0);
}
// CHECK-MSVC: @llvm.arm.dmb(i32 0)
// CHECK-EABI: error: implicit declaration of function '__dmb'
void check__dsb(void) {
__dsb(0);
}
// CHECK-MSVC: @llvm.arm.dsb(i32 0)
// CHECK-EABI: error: implicit declaration of function '__dsb'
void check__isb(void) {
__isb(0);
}
// CHECK-MSVC: @llvm.arm.isb(i32 0)
// CHECK-EABI: error: implicit declaration of function '__isb'
__INT64_TYPE__ check__ldrexd(void) {
__INT64_TYPE__ i64;
return __ldrexd(&i64);
}
// CHECK-MSVC: @llvm.arm.ldrexd(i8* {{.*}})
// CHECK-EABI: error: implicit declaration of function '__ldrexd'
unsigned int check_MoveFromCoprocessor(void) {
return _MoveFromCoprocessor(0, 0, 0, 0, 0);
}
// CHECK-MSVC: @llvm.arm.mrc(i32 0, i32 0, i32 0, i32 0, i32 0)
// CHECK-EABI: error: implicit declaration of function '_MoveFromCoprocessor'
unsigned int check_MoveFromCoprocessor2(void) {
return _MoveFromCoprocessor2(0, 0, 0, 0, 0);
}
// CHECK-MSVC: @llvm.arm.mrc2(i32 0, i32 0, i32 0, i32 0, i32 0)
// CHECK-EABI: error: implicit declaration of function '_MoveFromCoprocessor2'
void check_MoveToCoprocessor(void) {
_MoveToCoprocessor(0, 0, 0, 0, 0, 0);
}
// CHECK-MSVC: @llvm.arm.mcr(i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
// CHECK-EABI: error: implicit declaration of function '_MoveToCoprocessor'
void check_MoveToCoprocessor2(void) {
_MoveToCoprocessor2(0, 0, 0, 0, 0, 0);
}
// CHECK-MSVC: @llvm.arm.mcr2(i32 0, i32 0, i32 0, i32 0, i32 0, i32 0)
// CHECK-EABI: error: implicit declaration of function '_MoveToCoprocessor2'