[PATCH] D147221: [LoongArch][NFC] Add tests of additions with immediates
Ben Shi via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Mar 30 05:06:12 PDT 2023
benshi001 created this revision.
benshi001 added reviewers: xen0n, SixWeining, XiaodongLoong, wangleiat, gonglingqin, xry111.
Herald added a project: All.
benshi001 requested review of this revision.
Herald added subscribers: llvm-commits, jacquesguan.
Herald added a project: LLVM.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D147221
Files:
llvm/test/CodeGen/LoongArch/ir-instruction/add.ll
Index: llvm/test/CodeGen/LoongArch/ir-instruction/add.ll
===================================================================
--- llvm/test/CodeGen/LoongArch/ir-instruction/add.ll
+++ llvm/test/CodeGen/LoongArch/ir-instruction/add.ll
@@ -703,3 +703,78 @@
%add = add i32 %x, -2147485696
ret i32 %add
}
+
+define signext i32 @add_i32_4080(i32 %x) {
+; LA32-LABEL: add_i32_4080:
+; LA32: # %bb.0:
+; LA32-NEXT: ori $a1, $zero, 4080
+; LA32-NEXT: add.w $a0, $a0, $a1
+; LA32-NEXT: ret
+;
+; LA64-LABEL: add_i32_4080:
+; LA64: # %bb.0:
+; LA64-NEXT: ori $a1, $zero, 4080
+; LA64-NEXT: add.w $a0, $a0, $a1
+; LA64-NEXT: ret
+ %add = add i32 %x, 4080
+ ret i32 %add
+}
+
+define signext i32 @add_i32_minus_4080(i32 %x) {
+; LA32-LABEL: add_i32_minus_4080:
+; LA32: # %bb.0:
+; LA32-NEXT: lu12i.w $a1, -1
+; LA32-NEXT: ori $a1, $a1, 16
+; LA32-NEXT: add.w $a0, $a0, $a1
+; LA32-NEXT: ret
+;
+; LA64-LABEL: add_i32_minus_4080:
+; LA64: # %bb.0:
+; LA64-NEXT: lu12i.w $a1, -1
+; LA64-NEXT: ori $a1, $a1, 16
+; LA64-NEXT: add.w $a0, $a0, $a1
+; LA64-NEXT: ret
+ %add = add i32 %x, -4080
+ ret i32 %add
+}
+
+define i64 @add_i64_4080(i64 %x) {
+; LA32-LABEL: add_i64_4080:
+; LA32: # %bb.0:
+; LA32-NEXT: ori $a2, $zero, 4080
+; LA32-NEXT: add.w $a2, $a0, $a2
+; LA32-NEXT: sltu $a0, $a2, $a0
+; LA32-NEXT: add.w $a1, $a1, $a0
+; LA32-NEXT: move $a0, $a2
+; LA32-NEXT: ret
+;
+; LA64-LABEL: add_i64_4080:
+; LA64: # %bb.0:
+; LA64-NEXT: ori $a1, $zero, 4080
+; LA64-NEXT: add.d $a0, $a0, $a1
+; LA64-NEXT: ret
+ %add = add i64 %x, 4080
+ ret i64 %add
+}
+
+define i64 @add_i64_minus_4080(i64 %x) {
+; LA32-LABEL: add_i64_minus_4080:
+; LA32: # %bb.0:
+; LA32-NEXT: lu12i.w $a2, -1
+; LA32-NEXT: ori $a2, $a2, 16
+; LA32-NEXT: add.w $a2, $a0, $a2
+; LA32-NEXT: sltu $a0, $a2, $a0
+; LA32-NEXT: add.w $a0, $a1, $a0
+; LA32-NEXT: addi.w $a1, $a0, -1
+; LA32-NEXT: move $a0, $a2
+; LA32-NEXT: ret
+;
+; LA64-LABEL: add_i64_minus_4080:
+; LA64: # %bb.0:
+; LA64-NEXT: lu12i.w $a1, -1
+; LA64-NEXT: ori $a1, $a1, 16
+; LA64-NEXT: add.d $a0, $a0, $a1
+; LA64-NEXT: ret
+ %add = add i64 %x, -4080
+ ret i64 %add
+}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D147221.509619.patch
Type: text/x-patch
Size: 2262 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230330/2a68f10a/attachment.bin>
More information about the llvm-commits
mailing list