[llvm] [RISCV][ISel] Add codegen support for the experimental zabha extension (PR #80192)
Yingwei Zheng via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 14 05:52:31 PST 2024
================
@@ -2387,26 +3126,80 @@ define i8 @atomicrmw_nand_i8_monotonic(ptr %a, i8 %b) nounwind {
; RV64I-NEXT: addi sp, sp, 16
; RV64I-NEXT: ret
;
-; RV64IA-LABEL: atomicrmw_nand_i8_monotonic:
-; RV64IA: # %bb.0:
-; RV64IA-NEXT: andi a2, a0, -4
-; RV64IA-NEXT: slli a0, a0, 3
-; RV64IA-NEXT: li a3, 255
-; RV64IA-NEXT: sllw a3, a3, a0
-; RV64IA-NEXT: andi a1, a1, 255
-; RV64IA-NEXT: sllw a1, a1, a0
-; RV64IA-NEXT: .LBB30_1: # =>This Inner Loop Header: Depth=1
-; RV64IA-NEXT: lr.w a4, (a2)
-; RV64IA-NEXT: and a5, a4, a1
-; RV64IA-NEXT: not a5, a5
-; RV64IA-NEXT: xor a5, a4, a5
-; RV64IA-NEXT: and a5, a5, a3
-; RV64IA-NEXT: xor a5, a4, a5
-; RV64IA-NEXT: sc.w a5, a5, (a2)
-; RV64IA-NEXT: bnez a5, .LBB30_1
-; RV64IA-NEXT: # %bb.2:
-; RV64IA-NEXT: srlw a0, a4, a0
-; RV64IA-NEXT: ret
+; RV64IA-WMO-LABEL: atomicrmw_nand_i8_monotonic:
+; RV64IA-WMO: # %bb.0:
+; RV64IA-WMO-NEXT: andi a2, a0, -4
+; RV64IA-WMO-NEXT: slli a0, a0, 3
+; RV64IA-WMO-NEXT: li a3, 255
+; RV64IA-WMO-NEXT: sllw a3, a3, a0
+; RV64IA-WMO-NEXT: andi a1, a1, 255
+; RV64IA-WMO-NEXT: sllw a1, a1, a0
+; RV64IA-WMO-NEXT: .LBB30_1: # =>This Inner Loop Header: Depth=1
+; RV64IA-WMO-NEXT: lr.w a4, (a2)
+; RV64IA-WMO-NEXT: and a5, a4, a1
+; RV64IA-WMO-NEXT: not a5, a5
+; RV64IA-WMO-NEXT: xor a5, a4, a5
+; RV64IA-WMO-NEXT: and a5, a5, a3
+; RV64IA-WMO-NEXT: xor a5, a4, a5
+; RV64IA-WMO-NEXT: sc.w a5, a5, (a2)
+; RV64IA-WMO-NEXT: bnez a5, .LBB30_1
+; RV64IA-WMO-NEXT: # %bb.2:
+; RV64IA-WMO-NEXT: srlw a0, a4, a0
+; RV64IA-WMO-NEXT: ret
+;
+; RV64IA-ZABHA-LABEL: atomicrmw_nand_i8_monotonic:
----------------
dtcxzyw wrote:
Looks like it has been fixed?
https://github.com/llvm/llvm-project/pull/80192
More information about the llvm-commits
mailing list