llvm-project/clang/test/CodeGen/rtm-builtins.c
Michael Liao 625a875f05 Add clang support of RTM from TSX
- 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
2012-11-10 05:17:46 +00:00

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);
}