@@ -1857,6 +1857,7 @@ define void @cmpxchg_i8_seq_cst_seq_cst(ptr %ptr, i8 %cmp, i8 %val) nounwind {
1857
1857
;
1858
1858
; RV64IA-WMO-ZABHA-LABEL: cmpxchg_i8_seq_cst_seq_cst:
1859
1859
; RV64IA-WMO-ZABHA: # %bb.0:
1860
+ ; RV64IA-WMO-ZABHA-NEXT: fence rw, rw
1860
1861
; RV64IA-WMO-ZABHA-NEXT: amocas.b.aqrl a1, a2, (a0)
1861
1862
; RV64IA-WMO-ZABHA-NEXT: ret
1862
1863
;
@@ -1885,6 +1886,7 @@ define void @cmpxchg_i8_seq_cst_seq_cst(ptr %ptr, i8 %cmp, i8 %val) nounwind {
1885
1886
;
1886
1887
; RV64IA-TSO-ZABHA-LABEL: cmpxchg_i8_seq_cst_seq_cst:
1887
1888
; RV64IA-TSO-ZABHA: # %bb.0:
1889
+ ; RV64IA-TSO-ZABHA-NEXT: fence rw, rw
1888
1890
; RV64IA-TSO-ZABHA-NEXT: amocas.b a1, a2, (a0)
1889
1891
; RV64IA-TSO-ZABHA-NEXT: ret
1890
1892
%res = cmpxchg ptr %ptr , i8 %cmp , i8 %val seq_cst seq_cst
@@ -3787,6 +3789,7 @@ define void @cmpxchg_i16_seq_cst_seq_cst(ptr %ptr, i16 %cmp, i16 %val) nounwind
3787
3789
;
3788
3790
; RV64IA-WMO-ZABHA-LABEL: cmpxchg_i16_seq_cst_seq_cst:
3789
3791
; RV64IA-WMO-ZABHA: # %bb.0:
3792
+ ; RV64IA-WMO-ZABHA-NEXT: fence rw, rw
3790
3793
; RV64IA-WMO-ZABHA-NEXT: amocas.h.aqrl a1, a2, (a0)
3791
3794
; RV64IA-WMO-ZABHA-NEXT: ret
3792
3795
;
@@ -3816,6 +3819,7 @@ define void @cmpxchg_i16_seq_cst_seq_cst(ptr %ptr, i16 %cmp, i16 %val) nounwind
3816
3819
;
3817
3820
; RV64IA-TSO-ZABHA-LABEL: cmpxchg_i16_seq_cst_seq_cst:
3818
3821
; RV64IA-TSO-ZABHA: # %bb.0:
3822
+ ; RV64IA-TSO-ZABHA-NEXT: fence rw, rw
3819
3823
; RV64IA-TSO-ZABHA-NEXT: amocas.h a1, a2, (a0)
3820
3824
; RV64IA-TSO-ZABHA-NEXT: ret
3821
3825
%res = cmpxchg ptr %ptr , i16 %cmp , i16 %val seq_cst seq_cst
@@ -4788,6 +4792,7 @@ define void @cmpxchg_i32_seq_cst_seq_cst(ptr %ptr, i32 %cmp, i32 %val) nounwind
4788
4792
;
4789
4793
; RV32IA-WMO-ZACAS-LABEL: cmpxchg_i32_seq_cst_seq_cst:
4790
4794
; RV32IA-WMO-ZACAS: # %bb.0:
4795
+ ; RV32IA-WMO-ZACAS-NEXT: fence rw, rw
4791
4796
; RV32IA-WMO-ZACAS-NEXT: amocas.w.aqrl a1, a2, (a0)
4792
4797
; RV32IA-WMO-ZACAS-NEXT: ret
4793
4798
;
@@ -4804,6 +4809,7 @@ define void @cmpxchg_i32_seq_cst_seq_cst(ptr %ptr, i32 %cmp, i32 %val) nounwind
4804
4809
;
4805
4810
; RV32IA-TSO-ZACAS-LABEL: cmpxchg_i32_seq_cst_seq_cst:
4806
4811
; RV32IA-TSO-ZACAS: # %bb.0:
4812
+ ; RV32IA-TSO-ZACAS-NEXT: fence rw, rw
4807
4813
; RV32IA-TSO-ZACAS-NEXT: amocas.w a1, a2, (a0)
4808
4814
; RV32IA-TSO-ZACAS-NEXT: ret
4809
4815
;
@@ -4834,11 +4840,13 @@ define void @cmpxchg_i32_seq_cst_seq_cst(ptr %ptr, i32 %cmp, i32 %val) nounwind
4834
4840
;
4835
4841
; RV64IA-WMO-ZACAS-LABEL: cmpxchg_i32_seq_cst_seq_cst:
4836
4842
; RV64IA-WMO-ZACAS: # %bb.0:
4843
+ ; RV64IA-WMO-ZACAS-NEXT: fence rw, rw
4837
4844
; RV64IA-WMO-ZACAS-NEXT: amocas.w.aqrl a1, a2, (a0)
4838
4845
; RV64IA-WMO-ZACAS-NEXT: ret
4839
4846
;
4840
4847
; RV64IA-WMO-ZABHA-LABEL: cmpxchg_i32_seq_cst_seq_cst:
4841
4848
; RV64IA-WMO-ZABHA: # %bb.0:
4849
+ ; RV64IA-WMO-ZABHA-NEXT: fence rw, rw
4842
4850
; RV64IA-WMO-ZABHA-NEXT: amocas.w.aqrl a1, a2, (a0)
4843
4851
; RV64IA-WMO-ZABHA-NEXT: ret
4844
4852
;
@@ -4856,11 +4864,13 @@ define void @cmpxchg_i32_seq_cst_seq_cst(ptr %ptr, i32 %cmp, i32 %val) nounwind
4856
4864
;
4857
4865
; RV64IA-TSO-ZACAS-LABEL: cmpxchg_i32_seq_cst_seq_cst:
4858
4866
; RV64IA-TSO-ZACAS: # %bb.0:
4867
+ ; RV64IA-TSO-ZACAS-NEXT: fence rw, rw
4859
4868
; RV64IA-TSO-ZACAS-NEXT: amocas.w a1, a2, (a0)
4860
4869
; RV64IA-TSO-ZACAS-NEXT: ret
4861
4870
;
4862
4871
; RV64IA-TSO-ZABHA-LABEL: cmpxchg_i32_seq_cst_seq_cst:
4863
4872
; RV64IA-TSO-ZABHA: # %bb.0:
4873
+ ; RV64IA-TSO-ZABHA-NEXT: fence rw, rw
4864
4874
; RV64IA-TSO-ZABHA-NEXT: amocas.w a1, a2, (a0)
4865
4875
; RV64IA-TSO-ZABHA-NEXT: ret
4866
4876
%res = cmpxchg ptr %ptr , i32 %cmp , i32 %val seq_cst seq_cst
@@ -5753,11 +5763,13 @@ define void @cmpxchg_i64_seq_cst_seq_cst(ptr %ptr, i64 %cmp, i64 %val) nounwind
5753
5763
;
5754
5764
; RV64IA-WMO-ZACAS-LABEL: cmpxchg_i64_seq_cst_seq_cst:
5755
5765
; RV64IA-WMO-ZACAS: # %bb.0:
5766
+ ; RV64IA-WMO-ZACAS-NEXT: fence rw, rw
5756
5767
; RV64IA-WMO-ZACAS-NEXT: amocas.d.aqrl a1, a2, (a0)
5757
5768
; RV64IA-WMO-ZACAS-NEXT: ret
5758
5769
;
5759
5770
; RV64IA-WMO-ZABHA-LABEL: cmpxchg_i64_seq_cst_seq_cst:
5760
5771
; RV64IA-WMO-ZABHA: # %bb.0:
5772
+ ; RV64IA-WMO-ZABHA-NEXT: fence rw, rw
5761
5773
; RV64IA-WMO-ZABHA-NEXT: amocas.d.aqrl a1, a2, (a0)
5762
5774
; RV64IA-WMO-ZABHA-NEXT: ret
5763
5775
;
@@ -5774,11 +5786,13 @@ define void @cmpxchg_i64_seq_cst_seq_cst(ptr %ptr, i64 %cmp, i64 %val) nounwind
5774
5786
;
5775
5787
; RV64IA-TSO-ZACAS-LABEL: cmpxchg_i64_seq_cst_seq_cst:
5776
5788
; RV64IA-TSO-ZACAS: # %bb.0:
5789
+ ; RV64IA-TSO-ZACAS-NEXT: fence rw, rw
5777
5790
; RV64IA-TSO-ZACAS-NEXT: amocas.d a1, a2, (a0)
5778
5791
; RV64IA-TSO-ZACAS-NEXT: ret
5779
5792
;
5780
5793
; RV64IA-TSO-ZABHA-LABEL: cmpxchg_i64_seq_cst_seq_cst:
5781
5794
; RV64IA-TSO-ZABHA: # %bb.0:
5795
+ ; RV64IA-TSO-ZABHA-NEXT: fence rw, rw
5782
5796
; RV64IA-TSO-ZABHA-NEXT: amocas.d a1, a2, (a0)
5783
5797
; RV64IA-TSO-ZABHA-NEXT: ret
5784
5798
%res = cmpxchg ptr %ptr , i64 %cmp , i64 %val seq_cst seq_cst
0 commit comments