Revert "[llvm] Improve llvm.objectsize computation by computing GEP, alloca and mallo...
[llvm-project.git] / clang / test / CodeGen / X86 / cet-builtins.c
blobcdd49d5fe7143d2f72d39be692de8d8ec2c07067
1 // RUN: %clang_cc1 -ffreestanding %s -triple=i386-unknown-unknown -target-feature +shstk -emit-llvm -o - -Wall -Werror | FileCheck %s --check-prefix=I386 --check-prefix=CHECK
2 // RUN: %clang_cc1 -ffreestanding %s -triple=x86_64-unknown-unknown -target-feature +shstk -emit-llvm -o - -Wall -Werror | FileCheck %s --check-prefix=X86_64 --check-prefix=CHECK
4 #include <immintrin.h>
6 void test_incsspd(int a) {
7 // CHECK-LABEL: @test_incsspd
8 // CHECK: call void @llvm.x86.incsspd(i32 %{{[0-9]+}})
9 _incsspd(a);
12 #ifdef __x86_64__
13 void test_incsspq(int a) {
14 // X86_64-LABEL: @test_incsspq
15 // X86_64: call void @llvm.x86.incsspq(i64 %{{[a-z0-9.]+}})
16 _incsspq(a);
19 void test_inc_ssp(unsigned int a) {
20 // X86_64-LABEL: @test_inc_ssp
21 // X86_64: call void @llvm.x86.incsspq(i64 %{{[a-z0-9.]+}})
22 _inc_ssp(a);
24 #else
26 void test_inc_ssp(unsigned int a) {
27 // I386-LABEL: @test_inc_ssp
28 // I386: call void @llvm.x86.incsspd(i32 %{{[0-9]+}})
29 _inc_ssp(a);
32 #endif
34 unsigned int test_rdsspd(unsigned int a) {
35 // CHECK-LABEL: @test_rdsspd
36 // CHECK: call i32 @llvm.x86.rdsspd(i32 %{{[a-z0-9.]+}})
37 return _rdsspd(a);
40 unsigned int test_rdsspd_i32(void) {
41 // CHECK-LABEL: @test_rdsspd_i32
42 // CHECK: call i32 @llvm.x86.rdsspd(i32 %{{[a-z0-9.]+}})
43 return _rdsspd_i32();
46 #ifdef __x86_64__
47 unsigned long long test_rdsspq(unsigned long long a) {
48 // X86_64-LABEL: @test_rdsspq
49 // X86_64: call i64 @llvm.x86.rdsspq(i64 %{{[a-z0-9.]+}})
50 return _rdsspq(a);
53 unsigned long long test_rdsspq_i64(void) {
54 // X86_64-LABEL: @test_rdsspq_i64
55 // X86_64: call i64 @llvm.x86.rdsspq(i64 %{{[a-z0-9.]+}})
56 return _rdsspq_i64();
59 unsigned long long test_get_ssp(void) {
60 // X86_64-LABEL: @test_get_ssp
61 // X86_64: call i64 @llvm.x86.rdsspq(i64 0)
62 return _get_ssp();
65 #else
67 unsigned int test_get_ssp(void) {
68 // I386-LABEL: @test_get_ssp
69 // I386: call i32 @llvm.x86.rdsspd(i32 0)
70 return _get_ssp();
73 #endif
75 void test_saveprevssp(void) {
76 // CHECK-LABEL: @test_saveprevssp
77 // CHECK: call void @llvm.x86.saveprevssp()
78 _saveprevssp();
81 void test_rstorssp(void * __p) {
82 // CHECK-LABEL: @test_rstorssp
83 // CHECK: call void @llvm.x86.rstorssp(ptr %{{[a-z0-9.]+}})
84 _rstorssp(__p);
87 void test_wrssd(unsigned int __a, void * __p) {
88 // CHECK-LABEL: @test_wrssd
89 // CHECK: call void @llvm.x86.wrssd(i32 %{{[a-z0-9.]+}}, ptr %{{[a-z0-9.]+}})
90 _wrssd(__a, __p);
93 #ifdef __x86_64__
94 void test_wrssq(unsigned long long __a, void * __p) {
95 // X86_64-LABEL: @test_wrssq
96 // X86_64: call void @llvm.x86.wrssq(i64 %{{[a-z0-9.]+}}, ptr %{{[a-z0-9.]+}})
97 _wrssq(__a, __p);
99 #endif
101 void test_wrussd(unsigned int __a, void * __p) {
102 // CHECK-LABEL: @test_wrussd
103 // CHECK: call void @llvm.x86.wrussd(i32 %{{[a-z0-9.]+}}, ptr %{{[a-z0-9.]+}})
104 _wrussd(__a, __p);
107 #ifdef __x86_64__
108 void test_wrussq(unsigned long long __a, void * __p) {
109 // X86_64-LABEL: @test_wrussq
110 // X86_64: call void @llvm.x86.wrussq(i64 %{{[a-z0-9.]+}}, ptr %{{[a-z0-9.]+}})
111 _wrussq(__a, __p);
113 #endif
115 void test_setssbsy(void) {
116 // CHECK-LABEL: @test_setssbsy
117 // CHECK: call void @llvm.x86.setssbsy()
118 _setssbsy();
121 void test_clrssbsy(void * __p) {
122 // CHECK-LABEL: @test_clrssbsy
123 // CHECK: call void @llvm.x86.clrssbsy(ptr %{{[a-z0-9.]+}})
124 _clrssbsy(__p);