1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2 ; RUN: llc -mtriple=riscv32 -verify-machineinstrs < %s \ 3 ; RUN: | FileCheck -check-prefix=RV32I %s 4 ; RUN: llc -mtriple=riscv32 -mattr=+a -verify-machineinstrs < %s \ 5 ; RUN: | FileCheck -check-prefix=RV32I %s 6 7 define void @fence_acquire() nounwind { 8 ; RV32I-LABEL: fence_acquire: 9 ; RV32I: # %bb.0: 10 ; RV32I-NEXT: fence r, rw 11 ; RV32I-NEXT: ret 12 fence acquire 13 ret void 14 } 15 16 define void @fence_release() nounwind { 17 ; RV32I-LABEL: fence_release: 18 ; RV32I: # %bb.0: 19 ; RV32I-NEXT: fence rw, w 20 ; RV32I-NEXT: ret 21 fence release 22 ret void 23 } 24 25 define void @fence_acq_rel() nounwind { 26 ; RV32I-LABEL: fence_acq_rel: 27 ; RV32I: # %bb.0: 28 ; RV32I-NEXT: fence.tso 29 ; RV32I-NEXT: ret 30 fence acq_rel 31 ret void 32 } 33 34 define void @fence_seq_cst() nounwind { 35 ; RV32I-LABEL: fence_seq_cst: 36 ; RV32I: # %bb.0: 37 ; RV32I-NEXT: fence rw, rw 38 ; RV32I-NEXT: ret 39 fence seq_cst 40 ret void 41 } 42