1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc < %s -mtriple=i386-apple-darwin -mattr=+shstk | FileCheck %s
3
4define void @test_incsspd(i32 %a) local_unnamed_addr {
5; CHECK-LABEL: test_incsspd:
6; CHECK:       ## %bb.0: ## %entry
7; CHECK-NEXT:    movl {{[0-9]+}}(%esp), %eax
8; CHECK-NEXT:    incsspd %eax
9; CHECK-NEXT:    retl
10entry:
11  tail call void @llvm.x86.incsspd(i32 %a)
12  ret void
13}
14
15declare void @llvm.x86.incsspd(i32)
16
17define i32 @test_rdsspd(i32 %a) {
18; CHECK-LABEL: test_rdsspd:
19; CHECK:       ## %bb.0: ## %entry
20; CHECK-NEXT:    movl {{[0-9]+}}(%esp), %eax
21; CHECK-NEXT:    rdsspd %eax
22; CHECK-NEXT:    retl
23entry:
24  %0 = call i32 @llvm.x86.rdsspd(i32 %a)
25  ret i32 %0
26}
27
28declare i32 @llvm.x86.rdsspd(i32)
29
30define void @test_saveprevssp() {
31; CHECK-LABEL: test_saveprevssp:
32; CHECK:       ## %bb.0: ## %entry
33; CHECK-NEXT:    saveprevssp
34; CHECK-NEXT:    retl
35entry:
36  tail call void @llvm.x86.saveprevssp()
37  ret void
38}
39
40declare void @llvm.x86.saveprevssp()
41
42define void @test_rstorssp(i8* %__p) {
43; CHECK-LABEL: test_rstorssp:
44; CHECK:       ## %bb.0: ## %entry
45; CHECK-NEXT:    movl {{[0-9]+}}(%esp), %eax
46; CHECK-NEXT:    rstorssp (%eax)
47; CHECK-NEXT:    retl
48entry:
49  tail call void @llvm.x86.rstorssp(i8* %__p)
50  ret void
51}
52
53declare void @llvm.x86.rstorssp(i8*)
54
55define void @test_wrssd(i32 %a, i8* %__p) {
56; CHECK-LABEL: test_wrssd:
57; CHECK:       ## %bb.0: ## %entry
58; CHECK-NEXT:    movl {{[0-9]+}}(%esp), %eax
59; CHECK-NEXT:    movl {{[0-9]+}}(%esp), %ecx
60; CHECK-NEXT:    wrssd %eax, (%ecx)
61; CHECK-NEXT:    retl
62entry:
63  tail call void @llvm.x86.wrssd(i32 %a, i8* %__p)
64  ret void
65}
66
67declare void @llvm.x86.wrssd(i32, i8*)
68
69define void @test_wrussd(i32 %a, i8* %__p) {
70; CHECK-LABEL: test_wrussd:
71; CHECK:       ## %bb.0: ## %entry
72; CHECK-NEXT:    movl {{[0-9]+}}(%esp), %eax
73; CHECK-NEXT:    movl {{[0-9]+}}(%esp), %ecx
74; CHECK-NEXT:    wrussd %eax, (%ecx)
75; CHECK-NEXT:    retl
76entry:
77  tail call void @llvm.x86.wrussd(i32 %a, i8* %__p)
78  ret void
79}
80
81declare void @llvm.x86.wrussd(i32, i8*)
82
83define void @test_setssbsy() {
84; CHECK-LABEL: test_setssbsy:
85; CHECK:       ## %bb.0: ## %entry
86; CHECK-NEXT:    setssbsy
87; CHECK-NEXT:    retl
88entry:
89  tail call void @llvm.x86.setssbsy()
90  ret void
91}
92
93declare void @llvm.x86.setssbsy()
94
95define void @test_clrssbsy(i8* %__p) {
96; CHECK-LABEL: test_clrssbsy:
97; CHECK:       ## %bb.0: ## %entry
98; CHECK-NEXT:    movl {{[0-9]+}}(%esp), %eax
99; CHECK-NEXT:    clrssbsy (%eax)
100; CHECK-NEXT:    retl
101entry:
102  tail call void @llvm.x86.clrssbsy(i8* %__p)
103  ret void
104}
105
106declare void @llvm.x86.clrssbsy(i8* %__p)
107