[llvm] 0fcbb12 - [RISCV] Add test coverage for singlethread fences

Philip Reames via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 9 10:14:24 PST 2023


Author: Philip Reames
Date: 2023-01-09T10:14:12-08:00
New Revision: 0fcbb12465b41f9ed3db358769380d4bff4107d3

URL: https://github.com/llvm/llvm-project/commit/0fcbb12465b41f9ed3db358769380d4bff4107d3
DIFF: https://github.com/llvm/llvm-project/commit/0fcbb12465b41f9ed3db358769380d4bff4107d3.diff

LOG: [RISCV] Add test coverage for singlethread fences

Added: 
    

Modified: 
    llvm/test/CodeGen/RISCV/atomic-fence.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/CodeGen/RISCV/atomic-fence.ll b/llvm/test/CodeGen/RISCV/atomic-fence.ll
index 120f65bfcfdd..f69e9b37e84e 100644
--- a/llvm/test/CodeGen/RISCV/atomic-fence.ll
+++ b/llvm/test/CodeGen/RISCV/atomic-fence.ll
@@ -63,3 +63,59 @@ define void @fence_seq_cst() nounwind {
   fence seq_cst
   ret void
 }
+
+define void @fence_singlethread_acquire() nounwind {
+; RV32I-LABEL: fence_singlethread_acquire:
+; RV32I:       # %bb.0:
+; RV32I-NEXT:    fence r, rw
+; RV32I-NEXT:    ret
+;
+; RV64I-LABEL: fence_singlethread_acquire:
+; RV64I:       # %bb.0:
+; RV64I-NEXT:    fence r, rw
+; RV64I-NEXT:    ret
+  fence syncscope("singlethread") acquire
+  ret void
+}
+
+define void @fence_singlethread_release() nounwind {
+; RV32I-LABEL: fence_singlethread_release:
+; RV32I:       # %bb.0:
+; RV32I-NEXT:    fence rw, w
+; RV32I-NEXT:    ret
+;
+; RV64I-LABEL: fence_singlethread_release:
+; RV64I:       # %bb.0:
+; RV64I-NEXT:    fence rw, w
+; RV64I-NEXT:    ret
+  fence syncscope("singlethread") release
+  ret void
+}
+
+define void @fence_singlethread_acq_rel() nounwind {
+; RV32I-LABEL: fence_singlethread_acq_rel:
+; RV32I:       # %bb.0:
+; RV32I-NEXT:    fence.tso
+; RV32I-NEXT:    ret
+;
+; RV64I-LABEL: fence_singlethread_acq_rel:
+; RV64I:       # %bb.0:
+; RV64I-NEXT:    fence.tso
+; RV64I-NEXT:    ret
+  fence syncscope("singlethread") acq_rel
+  ret void
+}
+
+define void @fence_singlethread_seq_cst() nounwind {
+; RV32I-LABEL: fence_singlethread_seq_cst:
+; RV32I:       # %bb.0:
+; RV32I-NEXT:    fence rw, rw
+; RV32I-NEXT:    ret
+;
+; RV64I-LABEL: fence_singlethread_seq_cst:
+; RV64I:       # %bb.0:
+; RV64I-NEXT:    fence rw, rw
+; RV64I-NEXT:    ret
+  fence syncscope("singlethread") seq_cst
+  ret void
+}


        


More information about the llvm-commits mailing list