Home | History | Annotate | Download | only in X86
      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 
      4 define 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
     10 entry:
     11   tail call void @llvm.x86.incsspd(i32 %a)
     12   ret void
     13 }
     14 
     15 declare void @llvm.x86.incsspd(i32)
     16 
     17 define 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
     23 entry:
     24   %0 = call i32 @llvm.x86.rdsspd(i32 %a)
     25   ret i32 %0
     26 }
     27 
     28 declare i32 @llvm.x86.rdsspd(i32)
     29 
     30 define void @test_saveprevssp() {
     31 ; CHECK-LABEL: test_saveprevssp:
     32 ; CHECK:       ## %bb.0: ## %entry
     33 ; CHECK-NEXT:    saveprevssp
     34 ; CHECK-NEXT:    retl
     35 entry:
     36   tail call void @llvm.x86.saveprevssp()
     37   ret void
     38 }
     39 
     40 declare void @llvm.x86.saveprevssp()
     41 
     42 define 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
     48 entry:
     49   tail call void @llvm.x86.rstorssp(i8* %__p)
     50   ret void
     51 }
     52 
     53 declare void @llvm.x86.rstorssp(i8*)
     54 
     55 define 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
     62 entry:
     63   tail call void @llvm.x86.wrssd(i32 %a, i8* %__p)
     64   ret void
     65 }
     66 
     67 declare void @llvm.x86.wrssd(i32, i8*)
     68 
     69 define 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
     76 entry:
     77   tail call void @llvm.x86.wrussd(i32 %a, i8* %__p)
     78   ret void
     79 }
     80 
     81 declare void @llvm.x86.wrussd(i32, i8*)
     82 
     83 define void @test_setssbsy() {
     84 ; CHECK-LABEL: test_setssbsy:
     85 ; CHECK:       ## %bb.0: ## %entry
     86 ; CHECK-NEXT:    setssbsy
     87 ; CHECK-NEXT:    retl
     88 entry:
     89   tail call void @llvm.x86.setssbsy()
     90   ret void
     91 }
     92 
     93 declare void @llvm.x86.setssbsy()
     94 
     95 define 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
    101 entry:
    102   tail call void @llvm.x86.clrssbsy(i8* %__p)
    103   ret void
    104 }
    105 
    106 declare void @llvm.x86.clrssbsy(i8* %__p)
    107