[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