[llvm] 36d8b37 - [RISCV] Add another missed Zbs constant materialization test. NFC
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Wed May 8 16:22:26 PDT 2024
Author: Craig Topper
Date: 2024-05-08T16:20:07-07:00
New Revision: 36d8b37dfaa95b8b4e21cb8269fefb62e1f59c2f
URL: https://github.com/llvm/llvm-project/commit/36d8b37dfaa95b8b4e21cb8269fefb62e1f59c2f
DIFF: https://github.com/llvm/llvm-project/commit/36d8b37dfaa95b8b4e21cb8269fefb62e1f59c2f.diff
LOG: [RISCV] Add another missed Zbs constant materialization test. NFC
This can be LI+BCLRI+BCLRI.
Added:
Modified:
llvm/test/CodeGen/RISCV/imm.ll
llvm/test/CodeGen/RISCV/rv64-legal-i32/imm.ll
Removed:
################################################################################
diff --git a/llvm/test/CodeGen/RISCV/imm.ll b/llvm/test/CodeGen/RISCV/imm.ll
index 6456401dbb86..0dc5c7ceb500 100644
--- a/llvm/test/CodeGen/RISCV/imm.ll
+++ b/llvm/test/CodeGen/RISCV/imm.ll
@@ -4110,3 +4110,70 @@ define i64 @imm64_0x10000100000000() {
; RV64-REMAT-NEXT: ret
ret i64 4503603922337792 ; 0x10000100000000
}
+
+define i64 @imm64_0xFF7FFFFF7FFFFFFE() {
+; RV32I-LABEL: imm64_0xFF7FFFFF7FFFFFFE:
+; RV32I: # %bb.0:
+; RV32I-NEXT: lui a0, 524288
+; RV32I-NEXT: addi a0, a0, -1
+; RV32I-NEXT: lui a1, 1046528
+; RV32I-NEXT: addi a1, a1, -1
+; RV32I-NEXT: ret
+;
+; RV64I-LABEL: imm64_0xFF7FFFFF7FFFFFFE:
+; RV64I: # %bb.0:
+; RV64I-NEXT: lui a0, 1044480
+; RV64I-NEXT: addiw a0, a0, -1
+; RV64I-NEXT: slli a0, a0, 31
+; RV64I-NEXT: addi a0, a0, -1
+; RV64I-NEXT: ret
+;
+; RV64IZBA-LABEL: imm64_0xFF7FFFFF7FFFFFFE:
+; RV64IZBA: # %bb.0:
+; RV64IZBA-NEXT: lui a0, 1044480
+; RV64IZBA-NEXT: addiw a0, a0, -1
+; RV64IZBA-NEXT: slli a0, a0, 31
+; RV64IZBA-NEXT: addi a0, a0, -1
+; RV64IZBA-NEXT: ret
+;
+; RV64IZBB-LABEL: imm64_0xFF7FFFFF7FFFFFFE:
+; RV64IZBB: # %bb.0:
+; RV64IZBB-NEXT: lui a0, 1044480
+; RV64IZBB-NEXT: addiw a0, a0, -1
+; RV64IZBB-NEXT: slli a0, a0, 31
+; RV64IZBB-NEXT: addi a0, a0, -1
+; RV64IZBB-NEXT: ret
+;
+; RV64IZBS-LABEL: imm64_0xFF7FFFFF7FFFFFFE:
+; RV64IZBS: # %bb.0:
+; RV64IZBS-NEXT: lui a0, 1044480
+; RV64IZBS-NEXT: addiw a0, a0, -1
+; RV64IZBS-NEXT: slli a0, a0, 31
+; RV64IZBS-NEXT: addi a0, a0, -1
+; RV64IZBS-NEXT: ret
+;
+; RV64IXTHEADBB-LABEL: imm64_0xFF7FFFFF7FFFFFFE:
+; RV64IXTHEADBB: # %bb.0:
+; RV64IXTHEADBB-NEXT: lui a0, 1044480
+; RV64IXTHEADBB-NEXT: addiw a0, a0, -1
+; RV64IXTHEADBB-NEXT: slli a0, a0, 31
+; RV64IXTHEADBB-NEXT: addi a0, a0, -1
+; RV64IXTHEADBB-NEXT: ret
+;
+; RV32-REMAT-LABEL: imm64_0xFF7FFFFF7FFFFFFE:
+; RV32-REMAT: # %bb.0:
+; RV32-REMAT-NEXT: lui a0, 524288
+; RV32-REMAT-NEXT: addi a0, a0, -1
+; RV32-REMAT-NEXT: lui a1, 1046528
+; RV32-REMAT-NEXT: addi a1, a1, -1
+; RV32-REMAT-NEXT: ret
+;
+; RV64-REMAT-LABEL: imm64_0xFF7FFFFF7FFFFFFE:
+; RV64-REMAT: # %bb.0:
+; RV64-REMAT-NEXT: lui a0, 1044480
+; RV64-REMAT-NEXT: addiw a0, a0, -1
+; RV64-REMAT-NEXT: slli a0, a0, 31
+; RV64-REMAT-NEXT: addi a0, a0, -1
+; RV64-REMAT-NEXT: ret
+ ret i64 -36028799166447617 ; 0xFF7FFFFF7FFFFFFE
+}
diff --git a/llvm/test/CodeGen/RISCV/rv64-legal-i32/imm.ll b/llvm/test/CodeGen/RISCV/rv64-legal-i32/imm.ll
index c5bb7289e448..bac4bb9ce6f1 100644
--- a/llvm/test/CodeGen/RISCV/rv64-legal-i32/imm.ll
+++ b/llvm/test/CodeGen/RISCV/rv64-legal-i32/imm.ll
@@ -2699,3 +2699,46 @@ define i64 @imm64_0x10000100000000() {
; RV64IXTHEADBB-NEXT: ret
ret i64 4503603922337792 ; 0x10000100000000
}
+
+define i64 @imm64_0xFF7FFFFF7FFFFFFE() {
+; RV64I-LABEL: imm64_0xFF7FFFFF7FFFFFFE:
+; RV64I: # %bb.0:
+; RV64I-NEXT: lui a0, 1044480
+; RV64I-NEXT: addiw a0, a0, -1
+; RV64I-NEXT: slli a0, a0, 31
+; RV64I-NEXT: addi a0, a0, -1
+; RV64I-NEXT: ret
+;
+; RV64IZBA-LABEL: imm64_0xFF7FFFFF7FFFFFFE:
+; RV64IZBA: # %bb.0:
+; RV64IZBA-NEXT: lui a0, 1044480
+; RV64IZBA-NEXT: addiw a0, a0, -1
+; RV64IZBA-NEXT: slli a0, a0, 31
+; RV64IZBA-NEXT: addi a0, a0, -1
+; RV64IZBA-NEXT: ret
+;
+; RV64IZBB-LABEL: imm64_0xFF7FFFFF7FFFFFFE:
+; RV64IZBB: # %bb.0:
+; RV64IZBB-NEXT: lui a0, 1044480
+; RV64IZBB-NEXT: addiw a0, a0, -1
+; RV64IZBB-NEXT: slli a0, a0, 31
+; RV64IZBB-NEXT: addi a0, a0, -1
+; RV64IZBB-NEXT: ret
+;
+; RV64IZBS-LABEL: imm64_0xFF7FFFFF7FFFFFFE:
+; RV64IZBS: # %bb.0:
+; RV64IZBS-NEXT: lui a0, 1044480
+; RV64IZBS-NEXT: addiw a0, a0, -1
+; RV64IZBS-NEXT: slli a0, a0, 31
+; RV64IZBS-NEXT: addi a0, a0, -1
+; RV64IZBS-NEXT: ret
+;
+; RV64IXTHEADBB-LABEL: imm64_0xFF7FFFFF7FFFFFFE:
+; RV64IXTHEADBB: # %bb.0:
+; RV64IXTHEADBB-NEXT: lui a0, 1044480
+; RV64IXTHEADBB-NEXT: addiw a0, a0, -1
+; RV64IXTHEADBB-NEXT: slli a0, a0, 31
+; RV64IXTHEADBB-NEXT: addi a0, a0, -1
+; RV64IXTHEADBB-NEXT: ret
+ ret i64 -36028799166447617 ; 0xFF7FFFFF7FFFFFFE
+}
More information about the llvm-commits
mailing list