[llvm] ac3e26b - [RISCV] Add more SHXADD tests. NFC
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 5 13:51:25 PDT 2022
Author: Craig Topper
Date: 2022-07-05T13:41:58-07:00
New Revision: ac3e26bcffa29d3519f87be678ad09431a6bf6f2
URL: https://github.com/llvm/llvm-project/commit/ac3e26bcffa29d3519f87be678ad09431a6bf6f2
DIFF: https://github.com/llvm/llvm-project/commit/ac3e26bcffa29d3519f87be678ad09431a6bf6f2.diff
LOG: [RISCV] Add more SHXADD tests. NFC
Added:
Modified:
llvm/test/CodeGen/RISCV/rv64zba.ll
Removed:
################################################################################
diff --git a/llvm/test/CodeGen/RISCV/rv64zba.ll b/llvm/test/CodeGen/RISCV/rv64zba.ll
index 4d0bc2e8437df..1b92377865bcf 100644
--- a/llvm/test/CodeGen/RISCV/rv64zba.ll
+++ b/llvm/test/CodeGen/RISCV/rv64zba.ll
@@ -1442,3 +1442,73 @@ define i64 @srliw_4_sh3add(i64* %0, i32 signext %1) {
%6 = load i64, i64* %5, align 8
ret i64 %6
}
+
+define signext i32 @srli_1_sh2add(i32* %0, i64 %1) {
+; CHECK-LABEL: srli_1_sh2add:
+; CHECK: # %bb.0:
+; CHECK-NEXT: slli a1, a1, 1
+; CHECK-NEXT: andi a1, a1, -4
+; CHECK-NEXT: add a0, a0, a1
+; CHECK-NEXT: lw a0, 0(a0)
+; CHECK-NEXT: ret
+ %3 = lshr i64 %1, 1
+ %4 = getelementptr inbounds i32, i32* %0, i64 %3
+ %5 = load i32, i32* %4, align 4
+ ret i32 %5
+}
+
+define i64 @srli_2_sh3add(i64* %0, i64 %1) {
+; CHECK-LABEL: srli_2_sh3add:
+; CHECK: # %bb.0:
+; CHECK-NEXT: slli a1, a1, 1
+; CHECK-NEXT: andi a1, a1, -8
+; CHECK-NEXT: add a0, a0, a1
+; CHECK-NEXT: ld a0, 0(a0)
+; CHECK-NEXT: ret
+ %3 = lshr i64 %1, 2
+ %4 = getelementptr inbounds i64, i64* %0, i64 %3
+ %5 = load i64, i64* %4, align 8
+ ret i64 %5
+}
+
+define signext i16 @srli_2_sh1add(i16* %0, i64 %1) {
+; CHECK-LABEL: srli_2_sh1add:
+; CHECK: # %bb.0:
+; CHECK-NEXT: srli a1, a1, 1
+; CHECK-NEXT: andi a1, a1, -2
+; CHECK-NEXT: add a0, a0, a1
+; CHECK-NEXT: lh a0, 0(a0)
+; CHECK-NEXT: ret
+ %3 = lshr i64 %1, 2
+ %4 = getelementptr inbounds i16, i16* %0, i64 %3
+ %5 = load i16, i16* %4, align 2
+ ret i16 %5
+}
+
+define signext i32 @srli_3_sh2add(i32* %0, i64 %1) {
+; CHECK-LABEL: srli_3_sh2add:
+; CHECK: # %bb.0:
+; CHECK-NEXT: srli a1, a1, 1
+; CHECK-NEXT: andi a1, a1, -4
+; CHECK-NEXT: add a0, a0, a1
+; CHECK-NEXT: lw a0, 0(a0)
+; CHECK-NEXT: ret
+ %3 = lshr i64 %1, 3
+ %4 = getelementptr inbounds i32, i32* %0, i64 %3
+ %5 = load i32, i32* %4, align 4
+ ret i32 %5
+}
+
+define i64 @srli_4_sh3add(i64* %0, i64 %1) {
+; CHECK-LABEL: srli_4_sh3add:
+; CHECK: # %bb.0:
+; CHECK-NEXT: srli a1, a1, 1
+; CHECK-NEXT: andi a1, a1, -8
+; CHECK-NEXT: add a0, a0, a1
+; CHECK-NEXT: ld a0, 0(a0)
+; CHECK-NEXT: ret
+ %3 = lshr i64 %1, 4
+ %4 = getelementptr inbounds i64, i64* %0, i64 %3
+ %5 = load i64, i64* %4, align 8
+ ret i64 %5
+}
More information about the llvm-commits
mailing list