1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2; RUN: llc < %s -mtriple=x86_64-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: incsspd %edi 8; CHECK-NEXT: retq 9entry: 10 tail call void @llvm.x86.incsspd(i32 %a) 11 ret void 12} 13 14declare void @llvm.x86.incsspd(i32) 15 16define void @test_incsspq(i32 %a) local_unnamed_addr { 17; CHECK-LABEL: test_incsspq: 18; CHECK: ## %bb.0: ## %entry 19; CHECK-NEXT: movslq %edi, %rax 20; CHECK-NEXT: incsspq %rax 21; CHECK-NEXT: retq 22entry: 23 %conv.i = sext i32 %a to i64 24 tail call void @llvm.x86.incsspq(i64 %conv.i) 25 ret void 26} 27 28declare void @llvm.x86.incsspq(i64) 29 30define i32 @test_rdsspd(i32 %a) { 31; CHECK-LABEL: test_rdsspd: 32; CHECK: ## %bb.0: ## %entry 33; CHECK-NEXT: movl %edi, %eax 34; CHECK-NEXT: rdsspd %eax 35; CHECK-NEXT: retq 36entry: 37 %0 = call i32 @llvm.x86.rdsspd(i32 %a) 38 ret i32 %0 39} 40 41declare i32 @llvm.x86.rdsspd(i32) 42 43define i64 @test_rdsspq(i64 %a) { 44; CHECK-LABEL: test_rdsspq: 45; CHECK: ## %bb.0: ## %entry 46; CHECK-NEXT: movq %rdi, %rax 47; CHECK-NEXT: rdsspq %rax 48; CHECK-NEXT: retq 49entry: 50 %0 = call i64 @llvm.x86.rdsspq(i64 %a) 51 ret i64 %0 52} 53 54declare i64 @llvm.x86.rdsspq(i64) 55 56define void @test_saveprevssp() { 57; CHECK-LABEL: test_saveprevssp: 58; CHECK: ## %bb.0: ## %entry 59; CHECK-NEXT: saveprevssp 60; CHECK-NEXT: retq 61entry: 62 tail call void @llvm.x86.saveprevssp() 63 ret void 64} 65 66declare void @llvm.x86.saveprevssp() 67 68define void @test_rstorssp(i8* %__p) { 69; CHECK-LABEL: test_rstorssp: 70; CHECK: ## %bb.0: ## %entry 71; CHECK-NEXT: rstorssp (%rdi) 72; CHECK-NEXT: retq 73entry: 74 tail call void @llvm.x86.rstorssp(i8* %__p) 75 ret void 76} 77 78declare void @llvm.x86.rstorssp(i8*) 79 80define void @test_wrssd(i32 %a, i8* %__p) { 81; CHECK-LABEL: test_wrssd: 82; CHECK: ## %bb.0: ## %entry 83; CHECK-NEXT: wrssd %edi, (%rsi) 84; CHECK-NEXT: retq 85entry: 86 tail call void @llvm.x86.wrssd(i32 %a, i8* %__p) 87 ret void 88} 89 90declare void @llvm.x86.wrssd(i32, i8*) 91 92define void @test_wrssq(i64 %a, i8* %__p) { 93; CHECK-LABEL: test_wrssq: 94; CHECK: ## %bb.0: ## %entry 95; CHECK-NEXT: wrssq %rdi, (%rsi) 96; CHECK-NEXT: retq 97entry: 98 tail call void @llvm.x86.wrssq(i64 %a, i8* %__p) 99 ret void 100} 101 102declare void @llvm.x86.wrssq(i64, i8*) 103 104define void @test_wrussd(i32 %a, i8* %__p) { 105; CHECK-LABEL: test_wrussd: 106; CHECK: ## %bb.0: ## %entry 107; CHECK-NEXT: wrussd %edi, (%rsi) 108; CHECK-NEXT: retq 109entry: 110 tail call void @llvm.x86.wrussd(i32 %a, i8* %__p) 111 ret void 112} 113 114declare void @llvm.x86.wrussd(i32, i8*) 115 116define void @test_wrussq(i64 %a, i8* %__p) { 117; CHECK-LABEL: test_wrussq: 118; CHECK: ## %bb.0: ## %entry 119; CHECK-NEXT: wrussq %rdi, (%rsi) 120; CHECK-NEXT: retq 121entry: 122 tail call void @llvm.x86.wrussq(i64 %a, i8* %__p) 123 ret void 124} 125 126declare void @llvm.x86.wrussq(i64, i8*) 127 128define void @test_setssbsy() { 129; CHECK-LABEL: test_setssbsy: 130; CHECK: ## %bb.0: ## %entry 131; CHECK-NEXT: setssbsy 132; CHECK-NEXT: retq 133entry: 134 tail call void @llvm.x86.setssbsy() 135 ret void 136} 137 138declare void @llvm.x86.setssbsy() 139 140define void @test_clrssbsy(i8* %__p) { 141; CHECK-LABEL: test_clrssbsy: 142; CHECK: ## %bb.0: ## %entry 143; CHECK-NEXT: clrssbsy (%rdi) 144; CHECK-NEXT: retq 145entry: 146 tail call void @llvm.x86.clrssbsy(i8* %__p) 147 ret void 148} 149 150declare void @llvm.x86.clrssbsy(i8* %__p) 151