@@ -4437,6 +4437,7 @@ define i8 @atomicrmw_nand_i8_seq_cst(ptr %a, i8 %b) nounwind {
4437
4437
; RV64IA-WMO-ZABHA-ZACAS-NEXT: # =>This Inner Loop Header: Depth=1
4438
4438
; RV64IA-WMO-ZABHA-ZACAS-NEXT: and a3, a0, a1
4439
4439
; RV64IA-WMO-ZABHA-ZACAS-NEXT: not a3, a3
4440
+ ; RV64IA-WMO-ZABHA-ZACAS-NEXT: fence rw, rw
4440
4441
; RV64IA-WMO-ZABHA-ZACAS-NEXT: slli a4, a0, 56
4441
4442
; RV64IA-WMO-ZABHA-ZACAS-NEXT: amocas.b.aqrl a0, a3, (a2)
4442
4443
; RV64IA-WMO-ZABHA-ZACAS-NEXT: srai a4, a4, 56
@@ -4452,6 +4453,7 @@ define i8 @atomicrmw_nand_i8_seq_cst(ptr %a, i8 %b) nounwind {
4452
4453
; RV64IA-TSO-ZABHA-ZACAS-NEXT: # =>This Inner Loop Header: Depth=1
4453
4454
; RV64IA-TSO-ZABHA-ZACAS-NEXT: and a3, a0, a1
4454
4455
; RV64IA-TSO-ZABHA-ZACAS-NEXT: not a3, a3
4456
+ ; RV64IA-TSO-ZABHA-ZACAS-NEXT: fence rw, rw
4455
4457
; RV64IA-TSO-ZABHA-ZACAS-NEXT: slli a4, a0, 56
4456
4458
; RV64IA-TSO-ZABHA-ZACAS-NEXT: amocas.b a0, a3, (a2)
4457
4459
; RV64IA-TSO-ZABHA-ZACAS-NEXT: srai a4, a4, 56
@@ -14410,6 +14412,7 @@ define i16 @atomicrmw_nand_i16_seq_cst(ptr %a, i16 %b) nounwind {
14410
14412
; RV64IA-WMO-ZABHA-ZACAS-NEXT: # =>This Inner Loop Header: Depth=1
14411
14413
; RV64IA-WMO-ZABHA-ZACAS-NEXT: and a3, a0, a1
14412
14414
; RV64IA-WMO-ZABHA-ZACAS-NEXT: not a3, a3
14415
+ ; RV64IA-WMO-ZABHA-ZACAS-NEXT: fence rw, rw
14413
14416
; RV64IA-WMO-ZABHA-ZACAS-NEXT: slli a4, a0, 48
14414
14417
; RV64IA-WMO-ZABHA-ZACAS-NEXT: amocas.h.aqrl a0, a3, (a2)
14415
14418
; RV64IA-WMO-ZABHA-ZACAS-NEXT: srai a4, a4, 48
@@ -14425,6 +14428,7 @@ define i16 @atomicrmw_nand_i16_seq_cst(ptr %a, i16 %b) nounwind {
14425
14428
; RV64IA-TSO-ZABHA-ZACAS-NEXT: # =>This Inner Loop Header: Depth=1
14426
14429
; RV64IA-TSO-ZABHA-ZACAS-NEXT: and a3, a0, a1
14427
14430
; RV64IA-TSO-ZABHA-ZACAS-NEXT: not a3, a3
14431
+ ; RV64IA-TSO-ZABHA-ZACAS-NEXT: fence rw, rw
14428
14432
; RV64IA-TSO-ZABHA-ZACAS-NEXT: slli a4, a0, 48
14429
14433
; RV64IA-TSO-ZABHA-ZACAS-NEXT: amocas.h a0, a3, (a2)
14430
14434
; RV64IA-TSO-ZABHA-ZACAS-NEXT: srai a4, a4, 48
@@ -21637,6 +21641,7 @@ define i32 @atomicrmw_nand_i32_seq_cst(ptr %a, i32 %b) nounwind {
21637
21641
; RV32IA-WMO-ZACAS-NEXT: mv a3, a0
21638
21642
; RV32IA-WMO-ZACAS-NEXT: and a4, a0, a1
21639
21643
; RV32IA-WMO-ZACAS-NEXT: not a4, a4
21644
+ ; RV32IA-WMO-ZACAS-NEXT: fence rw, rw
21640
21645
; RV32IA-WMO-ZACAS-NEXT: amocas.w.aqrl a0, a4, (a2)
21641
21646
; RV32IA-WMO-ZACAS-NEXT: bne a0, a3, .LBB154_1
21642
21647
; RV32IA-WMO-ZACAS-NEXT: # %bb.2: # %atomicrmw.end
@@ -21651,6 +21656,7 @@ define i32 @atomicrmw_nand_i32_seq_cst(ptr %a, i32 %b) nounwind {
21651
21656
; RV32IA-TSO-ZACAS-NEXT: mv a3, a0
21652
21657
; RV32IA-TSO-ZACAS-NEXT: and a4, a0, a1
21653
21658
; RV32IA-TSO-ZACAS-NEXT: not a4, a4
21659
+ ; RV32IA-TSO-ZACAS-NEXT: fence rw, rw
21654
21660
; RV32IA-TSO-ZACAS-NEXT: amocas.w a0, a4, (a2)
21655
21661
; RV32IA-TSO-ZACAS-NEXT: bne a0, a3, .LBB154_1
21656
21662
; RV32IA-TSO-ZACAS-NEXT: # %bb.2: # %atomicrmw.end
@@ -21665,6 +21671,7 @@ define i32 @atomicrmw_nand_i32_seq_cst(ptr %a, i32 %b) nounwind {
21665
21671
; RV64IA-WMO-ZACAS-NEXT: mv a3, a0
21666
21672
; RV64IA-WMO-ZACAS-NEXT: and a4, a0, a1
21667
21673
; RV64IA-WMO-ZACAS-NEXT: not a4, a4
21674
+ ; RV64IA-WMO-ZACAS-NEXT: fence rw, rw
21668
21675
; RV64IA-WMO-ZACAS-NEXT: amocas.w.aqrl a0, a4, (a2)
21669
21676
; RV64IA-WMO-ZACAS-NEXT: bne a0, a3, .LBB154_1
21670
21677
; RV64IA-WMO-ZACAS-NEXT: # %bb.2: # %atomicrmw.end
@@ -21679,6 +21686,7 @@ define i32 @atomicrmw_nand_i32_seq_cst(ptr %a, i32 %b) nounwind {
21679
21686
; RV64IA-TSO-ZACAS-NEXT: mv a3, a0
21680
21687
; RV64IA-TSO-ZACAS-NEXT: and a4, a0, a1
21681
21688
; RV64IA-TSO-ZACAS-NEXT: not a4, a4
21689
+ ; RV64IA-TSO-ZACAS-NEXT: fence rw, rw
21682
21690
; RV64IA-TSO-ZACAS-NEXT: amocas.w a0, a4, (a2)
21683
21691
; RV64IA-TSO-ZACAS-NEXT: bne a0, a3, .LBB154_1
21684
21692
; RV64IA-TSO-ZACAS-NEXT: # %bb.2: # %atomicrmw.end
@@ -21717,6 +21725,7 @@ define i32 @atomicrmw_nand_i32_seq_cst(ptr %a, i32 %b) nounwind {
21717
21725
; RV64IA-WMO-ZABHA-ZACAS-NEXT: mv a3, a0
21718
21726
; RV64IA-WMO-ZABHA-ZACAS-NEXT: and a4, a0, a1
21719
21727
; RV64IA-WMO-ZABHA-ZACAS-NEXT: not a4, a4
21728
+ ; RV64IA-WMO-ZABHA-ZACAS-NEXT: fence rw, rw
21720
21729
; RV64IA-WMO-ZABHA-ZACAS-NEXT: amocas.w.aqrl a0, a4, (a2)
21721
21730
; RV64IA-WMO-ZABHA-ZACAS-NEXT: bne a0, a3, .LBB154_1
21722
21731
; RV64IA-WMO-ZABHA-ZACAS-NEXT: # %bb.2: # %atomicrmw.end
@@ -21731,6 +21740,7 @@ define i32 @atomicrmw_nand_i32_seq_cst(ptr %a, i32 %b) nounwind {
21731
21740
; RV64IA-TSO-ZABHA-ZACAS-NEXT: mv a3, a0
21732
21741
; RV64IA-TSO-ZABHA-ZACAS-NEXT: and a4, a0, a1
21733
21742
; RV64IA-TSO-ZABHA-ZACAS-NEXT: not a4, a4
21743
+ ; RV64IA-TSO-ZABHA-ZACAS-NEXT: fence rw, rw
21734
21744
; RV64IA-TSO-ZABHA-ZACAS-NEXT: amocas.w a0, a4, (a2)
21735
21745
; RV64IA-TSO-ZABHA-ZACAS-NEXT: bne a0, a3, .LBB154_1
21736
21746
; RV64IA-TSO-ZABHA-ZACAS-NEXT: # %bb.2: # %atomicrmw.end
@@ -25546,6 +25556,7 @@ define i64 @atomicrmw_nand_i64_seq_cst(ptr %a, i64 %b) nounwind {
25546
25556
; RV64IA-WMO-ZACAS-NEXT: mv a3, a0
25547
25557
; RV64IA-WMO-ZACAS-NEXT: and a4, a0, a1
25548
25558
; RV64IA-WMO-ZACAS-NEXT: not a4, a4
25559
+ ; RV64IA-WMO-ZACAS-NEXT: fence rw, rw
25549
25560
; RV64IA-WMO-ZACAS-NEXT: amocas.d.aqrl a0, a4, (a2)
25550
25561
; RV64IA-WMO-ZACAS-NEXT: bne a0, a3, .LBB209_1
25551
25562
; RV64IA-WMO-ZACAS-NEXT: # %bb.2: # %atomicrmw.end
@@ -25560,6 +25571,7 @@ define i64 @atomicrmw_nand_i64_seq_cst(ptr %a, i64 %b) nounwind {
25560
25571
; RV64IA-TSO-ZACAS-NEXT: mv a3, a0
25561
25572
; RV64IA-TSO-ZACAS-NEXT: and a4, a0, a1
25562
25573
; RV64IA-TSO-ZACAS-NEXT: not a4, a4
25574
+ ; RV64IA-TSO-ZACAS-NEXT: fence rw, rw
25563
25575
; RV64IA-TSO-ZACAS-NEXT: amocas.d a0, a4, (a2)
25564
25576
; RV64IA-TSO-ZACAS-NEXT: bne a0, a3, .LBB209_1
25565
25577
; RV64IA-TSO-ZACAS-NEXT: # %bb.2: # %atomicrmw.end
@@ -25598,6 +25610,7 @@ define i64 @atomicrmw_nand_i64_seq_cst(ptr %a, i64 %b) nounwind {
25598
25610
; RV64IA-WMO-ZABHA-ZACAS-NEXT: mv a3, a0
25599
25611
; RV64IA-WMO-ZABHA-ZACAS-NEXT: and a4, a0, a1
25600
25612
; RV64IA-WMO-ZABHA-ZACAS-NEXT: not a4, a4
25613
+ ; RV64IA-WMO-ZABHA-ZACAS-NEXT: fence rw, rw
25601
25614
; RV64IA-WMO-ZABHA-ZACAS-NEXT: amocas.d.aqrl a0, a4, (a2)
25602
25615
; RV64IA-WMO-ZABHA-ZACAS-NEXT: bne a0, a3, .LBB209_1
25603
25616
; RV64IA-WMO-ZABHA-ZACAS-NEXT: # %bb.2: # %atomicrmw.end
@@ -25612,6 +25625,7 @@ define i64 @atomicrmw_nand_i64_seq_cst(ptr %a, i64 %b) nounwind {
25612
25625
; RV64IA-TSO-ZABHA-ZACAS-NEXT: mv a3, a0
25613
25626
; RV64IA-TSO-ZABHA-ZACAS-NEXT: and a4, a0, a1
25614
25627
; RV64IA-TSO-ZABHA-ZACAS-NEXT: not a4, a4
25628
+ ; RV64IA-TSO-ZABHA-ZACAS-NEXT: fence rw, rw
25615
25629
; RV64IA-TSO-ZABHA-ZACAS-NEXT: amocas.d a0, a4, (a2)
25616
25630
; RV64IA-TSO-ZABHA-ZACAS-NEXT: bne a0, a3, .LBB209_1
25617
25631
; RV64IA-TSO-ZABHA-ZACAS-NEXT: # %bb.2: # %atomicrmw.end
0 commit comments