; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc -mtriple=csky -verify-machineinstrs -csky-no-aliases -mattr=+2e3 < %s \ ; RUN: | FileCheck -check-prefix=CSKY %s define void @fence_acquire() nounwind { ; CSKY-LABEL: fence_acquire: ; CSKY: # %bb.0: ; CSKY-NEXT: subi16 sp, sp, 4 ; CSKY-NEXT: st32.w lr, (sp, 0) # 4-byte Folded Spill ; CSKY-NEXT: jsri32 [.LCPI0_0] ; CSKY-NEXT: ld32.w lr, (sp, 0) # 4-byte Folded Reload ; CSKY-NEXT: addi16 sp, sp, 4 ; CSKY-NEXT: rts16 ; CSKY-NEXT: .p2align 1 ; CSKY-NEXT: # %bb.1: ; CSKY-NEXT: .p2align 2 ; CSKY-NEXT: .LCPI0_0: ; CSKY-NEXT: .long __sync_synchronize ; fence acquire ret void } define void @fence_release() nounwind { ; CSKY-LABEL: fence_release: ; CSKY: # %bb.0: ; CSKY-NEXT: subi16 sp, sp, 4 ; CSKY-NEXT: st32.w lr, (sp, 0) # 4-byte Folded Spill ; CSKY-NEXT: jsri32 [.LCPI1_0] ; CSKY-NEXT: ld32.w lr, (sp, 0) # 4-byte Folded Reload ; CSKY-NEXT: addi16 sp, sp, 4 ; CSKY-NEXT: rts16 ; CSKY-NEXT: .p2align 1 ; CSKY-NEXT: # %bb.1: ; CSKY-NEXT: .p2align 2 ; CSKY-NEXT: .LCPI1_0: ; CSKY-NEXT: .long __sync_synchronize ; fence release ret void } define void @fence_acq_rel() nounwind { ; CSKY-LABEL: fence_acq_rel: ; CSKY: # %bb.0: ; CSKY-NEXT: subi16 sp, sp, 4 ; CSKY-NEXT: st32.w lr, (sp, 0) # 4-byte Folded Spill ; CSKY-NEXT: jsri32 [.LCPI2_0] ; CSKY-NEXT: ld32.w lr, (sp, 0) # 4-byte Folded Reload ; CSKY-NEXT: addi16 sp, sp, 4 ; CSKY-NEXT: rts16 ; CSKY-NEXT: .p2align 1 ; CSKY-NEXT: # %bb.1: ; CSKY-NEXT: .p2align 2 ; CSKY-NEXT: .LCPI2_0: ; CSKY-NEXT: .long __sync_synchronize ; fence acq_rel ret void } define void @fence_seq_cst() nounwind { ; CSKY-LABEL: fence_seq_cst: ; CSKY: # %bb.0: ; CSKY-NEXT: subi16 sp, sp, 4 ; CSKY-NEXT: st32.w lr, (sp, 0) # 4-byte Folded Spill ; CSKY-NEXT: jsri32 [.LCPI3_0] ; CSKY-NEXT: ld32.w lr, (sp, 0) # 4-byte Folded Reload ; CSKY-NEXT: addi16 sp, sp, 4 ; CSKY-NEXT: rts16 ; CSKY-NEXT: .p2align 1 ; CSKY-NEXT: # %bb.1: ; CSKY-NEXT: .p2align 2 ; CSKY-NEXT: .LCPI3_0: ; CSKY-NEXT: .long __sync_synchronize ; fence seq_cst ret void }