1*67e74705SXin Li // RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +fsgsbase -emit-llvm -o - | FileCheck %s 2*67e74705SXin Li 3*67e74705SXin Li // Don't include mm_malloc.h, it's system specific. 4*67e74705SXin Li #define __MM_MALLOC_H 5*67e74705SXin Li 6*67e74705SXin Li #include <x86intrin.h> 7*67e74705SXin Li test_readfsbase_u32()8*67e74705SXin Liunsigned int test_readfsbase_u32() 9*67e74705SXin Li { 10*67e74705SXin Li // CHECK: @llvm.x86.rdfsbase.32 11*67e74705SXin Li return _readfsbase_u32(); 12*67e74705SXin Li } 13*67e74705SXin Li test_readfsbase_u64()14*67e74705SXin Liunsigned long long test_readfsbase_u64() 15*67e74705SXin Li { 16*67e74705SXin Li // CHECK: @llvm.x86.rdfsbase.64 17*67e74705SXin Li return _readfsbase_u64(); 18*67e74705SXin Li } 19*67e74705SXin Li test_readgsbase_u32()20*67e74705SXin Liunsigned int test_readgsbase_u32() 21*67e74705SXin Li { 22*67e74705SXin Li // CHECK: @llvm.x86.rdgsbase.32 23*67e74705SXin Li return _readgsbase_u32(); 24*67e74705SXin Li } 25*67e74705SXin Li test_readgsbase_u64()26*67e74705SXin Liunsigned long long test_readgsbase_u64() 27*67e74705SXin Li { 28*67e74705SXin Li // CHECK: @llvm.x86.rdgsbase.64 29*67e74705SXin Li return _readgsbase_u64(); 30*67e74705SXin Li } 31*67e74705SXin Li test_writefsbase_u32(unsigned int __X)32*67e74705SXin Livoid test_writefsbase_u32(unsigned int __X) 33*67e74705SXin Li { 34*67e74705SXin Li // CHECK: @llvm.x86.wrfsbase.32 35*67e74705SXin Li _writefsbase_u32(__X); 36*67e74705SXin Li } 37*67e74705SXin Li test_writefsbase_u64(unsigned long long __X)38*67e74705SXin Livoid test_writefsbase_u64(unsigned long long __X) 39*67e74705SXin Li { 40*67e74705SXin Li // CHECK: @llvm.x86.wrfsbase.64 41*67e74705SXin Li _writefsbase_u64(__X); 42*67e74705SXin Li } 43*67e74705SXin Li test_writegsbase_u32(unsigned int __X)44*67e74705SXin Livoid test_writegsbase_u32(unsigned int __X) 45*67e74705SXin Li { 46*67e74705SXin Li // CHECK: @llvm.x86.wrgsbase.32 47*67e74705SXin Li _writegsbase_u32(__X); 48*67e74705SXin Li } 49*67e74705SXin Li test_writegsbase_u64(unsigned long long __X)50*67e74705SXin Livoid test_writegsbase_u64(unsigned long long __X) 51*67e74705SXin Li { 52*67e74705SXin Li // CHECK: @llvm.x86.wrgsbase.64 53*67e74705SXin Li _writegsbase_u64(__X); 54*67e74705SXin Li } 55