brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.7 KiB · 536c1eb Raw
85 lines · c
1// RUN: %clang_cc1 -ffreestanding -fms-compatibility -fms-compatibility-version=19 -verify %s -triple i686-windows-msvc -fms-extensions -DTEST_X862// RUN: %clang_cc1 -ffreestanding -fms-compatibility -fms-compatibility-version=19 -verify %s -triple x86_64-windows-msvc -fms-extensions -DTEST_X643// RUN: %clang_cc1 -ffreestanding -fms-compatibility -fms-compatibility-version=19 -verify %s -triple arm-windows-msvc -fms-extensions -DTEST_ARM4// RUN: %clang_cc1 -ffreestanding -fms-compatibility -fms-compatibility-version=19 -verify %s -triple thumbv7-windows-msvc -fms-extensions -DTEST_ARM5// RUN: %clang_cc1 -ffreestanding -fms-compatibility -fms-compatibility-version=19 -verify %s -triple aarch64-windows-msvc -fms-extensions -DTEST_ARM6 7#include <intrin.h>8extern unsigned char sink;9 10#ifdef TEST_X8611void x86(long *bits, __int64 *bits64, long bitidx) {12  sink = _bittest(bits, bitidx);13  sink = _bittestandcomplement(bits, bitidx);14  sink = _bittestandreset(bits, bitidx);15  sink = _bittestandset(bits, bitidx);16  sink = _interlockedbittestandreset(bits, bitidx);17  sink = _interlockedbittestandset(bits, bitidx);18 19  sink = _bittest64(bits64, bitidx); // expected-error {{builtin is not supported on this target}}20  sink = _bittestandcomplement64(bits64, bitidx); // expected-error {{builtin is not supported on this target}}21  sink = _bittestandreset64(bits64, bitidx); // expected-error {{builtin is not supported on this target}}22  sink = _bittestandset64(bits64, bitidx); // expected-error {{builtin is not supported on this target}}23  sink = _interlockedbittestandreset64(bits64, bitidx); // expected-error {{builtin is not supported on this target}}24  sink = _interlockedbittestandset64(bits64, bitidx); // expected-error {{builtin is not supported on this target}}25 26  sink = _interlockedbittestandreset_acq(bits, bitidx); // expected-error {{builtin is not supported on this target}}27  sink = _interlockedbittestandreset_rel(bits, bitidx); // expected-error {{builtin is not supported on this target}}28  sink = _interlockedbittestandreset_nf(bits, bitidx); // expected-error {{builtin is not supported on this target}}29  sink = _interlockedbittestandset_acq(bits, bitidx); // expected-error {{builtin is not supported on this target}}30  sink = _interlockedbittestandset_rel(bits, bitidx); // expected-error {{builtin is not supported on this target}}31  sink = _interlockedbittestandset_nf(bits, bitidx); // expected-error {{builtin is not supported on this target}}32}33#endif34 35#ifdef TEST_X6436void x64(long *bits, __int64 *bits64, long bitidx) {37  sink = _bittest(bits, bitidx);38  sink = _bittestandcomplement(bits, bitidx);39  sink = _bittestandreset(bits, bitidx);40  sink = _bittestandset(bits, bitidx);41  sink = _interlockedbittestandreset(bits, bitidx);42  sink = _interlockedbittestandset(bits, bitidx);43 44  sink = _bittest64(bits64, bitidx);45  sink = _bittestandcomplement64(bits64, bitidx);46  sink = _bittestandreset64(bits64, bitidx);47  sink = _bittestandset64(bits64, bitidx);48  sink = _interlockedbittestandreset64(bits64, bitidx);49  sink = _interlockedbittestandset64(bits64, bitidx);50 51  sink = _interlockedbittestandreset_acq(bits, bitidx); // expected-error {{builtin is not supported on this target}}52  sink = _interlockedbittestandreset_rel(bits, bitidx); // expected-error {{builtin is not supported on this target}}53  sink = _interlockedbittestandreset_nf(bits, bitidx); // expected-error {{builtin is not supported on this target}}54  sink = _interlockedbittestandset_acq(bits, bitidx); // expected-error {{builtin is not supported on this target}}55  sink = _interlockedbittestandset_rel(bits, bitidx); // expected-error {{builtin is not supported on this target}}56  sink = _interlockedbittestandset_nf(bits, bitidx); // expected-error {{builtin is not supported on this target}}57}58#endif59 60#ifdef TEST_ARM61// expected-no-diagnostics62void arm(long *bits, __int64 *bits64, long bitidx) {63  sink = _bittest(bits, bitidx);64  sink = _bittestandcomplement(bits, bitidx);65  sink = _bittestandreset(bits, bitidx);66  sink = _bittestandset(bits, bitidx);67  sink = _interlockedbittestandreset(bits, bitidx);68  sink = _interlockedbittestandset(bits, bitidx);69 70  sink = _bittest64(bits64, bitidx);71  sink = _bittestandcomplement64(bits64, bitidx);72  sink = _bittestandreset64(bits64, bitidx);73  sink = _bittestandset64(bits64, bitidx);74  sink = _interlockedbittestandreset64(bits64, bitidx);75  sink = _interlockedbittestandset64(bits64, bitidx);76 77  sink = _interlockedbittestandreset_acq(bits, bitidx);78  sink = _interlockedbittestandreset_rel(bits, bitidx);79  sink = _interlockedbittestandreset_nf(bits, bitidx);80  sink = _interlockedbittestandset_acq(bits, bitidx);81  sink = _interlockedbittestandset_rel(bits, bitidx);82  sink = _interlockedbittestandset_nf(bits, bitidx);83}84#endif85