| ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py |
| ; RUN: llc -mtriple=riscv32 -verify-machineinstrs < %s \ |
| ; RUN: | FileCheck -check-prefix=RV32I %s |
| ; RUN: llc -mtriple=riscv32 -mattr=+a -verify-machineinstrs < %s \ |
| ; RUN: | FileCheck -check-prefix=RV32I %s |
| |
| define void @fence_acquire() nounwind { |
| ; RV32I-LABEL: fence_acquire: |
| ; RV32I: # %bb.0: |
| ; RV32I-NEXT: fence r, rw |
| ; RV32I-NEXT: ret |
| fence acquire |
| ret void |
| } |
| |
| define void @fence_release() nounwind { |
| ; RV32I-LABEL: fence_release: |
| ; RV32I: # %bb.0: |
| ; RV32I-NEXT: fence rw, w |
| ; RV32I-NEXT: ret |
| fence release |
| ret void |
| } |
| |
| define void @fence_acq_rel() nounwind { |
| ; RV32I-LABEL: fence_acq_rel: |
| ; RV32I: # %bb.0: |
| ; RV32I-NEXT: fence.tso |
| ; RV32I-NEXT: ret |
| fence acq_rel |
| ret void |
| } |
| |
| define void @fence_seq_cst() nounwind { |
| ; RV32I-LABEL: fence_seq_cst: |
| ; RV32I: # %bb.0: |
| ; RV32I-NEXT: fence rw, rw |
| ; RV32I-NEXT: ret |
| fence seq_cst |
| ret void |
| } |