- New options '-mrtm'/'-mno-rtm' are added to enable/disable RTM feature - Builtin macro '__RTM__' is defined if RTM feature is enabled - RTM intrinsic header is added and introduces 3 new intrinsics, namely '_xbegin', '_xend', and '_xabort'. - 3 new builtins are added to keep compatible with gcc, namely '__builtin_ia32_xbegin', '__builtin_ia32_xend', and '__builtin_ia32_xabort'. - Test cases for pre-defined macro and new intrinsic codegen are added. llvm-svn: 167665
24 lines
449 B
C
24 lines
449 B
C
// RUN: %clang_cc1 %s -O3 -triple=x86_64-apple-darwin -target-feature +rtm -emit-llvm -o - | FileCheck %s
|
|
|
|
// Don't include mm_malloc.h, it's system specific.
|
|
#define __MM_MALLOC_H
|
|
|
|
#include <immintrin.h>
|
|
|
|
unsigned int test_xbegin(void) {
|
|
// CHECK: i32 @llvm.x86.xbegin()
|
|
return _xbegin();
|
|
}
|
|
|
|
void
|
|
test_xend(void) {
|
|
// CHECK: void @llvm.x86.xend()
|
|
_xend();
|
|
}
|
|
|
|
void
|
|
test_xabort(void) {
|
|
// CHECK: void @llvm.x86.xabort(i8 2)
|
|
_xabort(2);
|
|
}
|