Skip to content

Commit 5b77e25

Browse files
authored
[LoongArch] Pre-commit test for immediate value materialization using BSTRINS_D
Reviewed By: SixWeining Pull Request: #106331
1 parent 0722b8a commit 5b77e25

File tree

1 file changed

+62
-0
lines changed
  • llvm/test/CodeGen/LoongArch

1 file changed

+62
-0
lines changed

llvm/test/CodeGen/LoongArch/imm.ll

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,3 +164,65 @@ define i64 @imm0008000080000800() {
164164
; CHECK-NEXT: ret
165165
ret i64 2251801961170944
166166
}
167+
168+
define i64 @imm14000000a() {
169+
; CHECK-LABEL: imm14000000a:
170+
; CHECK: # %bb.0:
171+
; CHECK-NEXT: lu12i.w $a0, 262144
172+
; CHECK-NEXT: ori $a0, $a0, 10
173+
; CHECK-NEXT: lu32i.d $a0, 1
174+
; CHECK-NEXT: ret
175+
ret i64 5368709130
176+
}
177+
178+
define i64 @imm0fff000000000fff() {
179+
; CHECK-LABEL: imm0fff000000000fff:
180+
; CHECK: # %bb.0:
181+
; CHECK-NEXT: ori $a0, $zero, 4095
182+
; CHECK-NEXT: lu32i.d $a0, -65536
183+
; CHECK-NEXT: lu52i.d $a0, $a0, 255
184+
; CHECK-NEXT: ret
185+
ret i64 1152640029630140415
186+
}
187+
188+
define i64 @immffecffffffffffec() {
189+
; CHECK-LABEL: immffecffffffffffec:
190+
; CHECK: # %bb.0:
191+
; CHECK-NEXT: addi.w $a0, $zero, -20
192+
; CHECK-NEXT: lu32i.d $a0, -196609
193+
; CHECK-NEXT: lu52i.d $a0, $a0, -2
194+
; CHECK-NEXT: ret
195+
ret i64 -5348024557502484
196+
}
197+
198+
define i64 @imm1c000000700000() {
199+
; CHECK-LABEL: imm1c000000700000:
200+
; CHECK: # %bb.0:
201+
; CHECK-NEXT: lu12i.w $a0, 1792
202+
; CHECK-NEXT: lu32i.d $a0, -262144
203+
; CHECK-NEXT: lu52i.d $a0, $a0, 1
204+
; CHECK-NEXT: ret
205+
ret i64 7881299355238400
206+
}
207+
208+
define i64 @immf0f0f0f0f0f0f0f0() {
209+
; CHECK-LABEL: immf0f0f0f0f0f0f0f0:
210+
; CHECK: # %bb.0:
211+
; CHECK-NEXT: lu12i.w $a0, -61681
212+
; CHECK-NEXT: ori $a0, $a0, 240
213+
; CHECK-NEXT: lu32i.d $a0, 61680
214+
; CHECK-NEXT: lu52i.d $a0, $a0, -241
215+
; CHECK-NEXT: ret
216+
ret i64 -1085102592571150096
217+
}
218+
219+
define i64 @imm110000014000000a() {
220+
; CHECK-LABEL: imm110000014000000a:
221+
; CHECK: # %bb.0:
222+
; CHECK-NEXT: lu12i.w $a0, 262144
223+
; CHECK-NEXT: ori $a0, $a0, 10
224+
; CHECK-NEXT: lu32i.d $a0, 1
225+
; CHECK-NEXT: lu52i.d $a0, $a0, 272
226+
; CHECK-NEXT: ret
227+
ret i64 1224979104013484042
228+
}

0 commit comments

Comments
 (0)