Skip to content

Commit 26cf3aa

Browse files
committed
[RISCV][GISel] Add more G_SEXTLOAD instruction selection tests. NFC
1 parent f995afe commit 26cf3aa

File tree

1 file changed

+56
-0
lines changed
  • llvm/test/CodeGen/RISCV/GlobalISel/instruction-select

1 file changed

+56
-0
lines changed

llvm/test/CodeGen/RISCV/GlobalISel/instruction-select/load-rv64.mir

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
define void @load_i32_i32(ptr %addr) { ret void }
2020
define void @zextload_i8_i32(ptr %addr) { ret void }
2121
define void @zextload_i16_i32(ptr %addr) { ret void }
22+
define void @sextload_i8_i32(ptr %addr) { ret void }
23+
define void @sextload_i16_i32(ptr %addr) { ret void }
2224
define void @load_fi_i64() {
2325
%ptr0 = alloca i64
2426
ret void
@@ -400,6 +402,60 @@ body: |
400402
$x10 = COPY %5(s64)
401403
PseudoRET implicit $x10
402404
405+
...
406+
---
407+
name: sextload_i8_i32
408+
legalized: true
409+
regBankSelected: true
410+
tracksRegLiveness: true
411+
body: |
412+
bb.0:
413+
liveins: $x10, $x11
414+
; CHECK-LABEL: name: sextload_i8_i32
415+
; CHECK: liveins: $x10, $x11
416+
; CHECK-NEXT: {{ $}}
417+
; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10
418+
; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11
419+
; CHECK-NEXT: [[LB:%[0-9]+]]:gpr = LB [[COPY]], 0 :: (load (s8))
420+
; CHECK-NEXT: [[ADDW:%[0-9]+]]:gpr = ADDW [[LB]], [[COPY1]]
421+
; CHECK-NEXT: $x10 = COPY [[ADDW]]
422+
; CHECK-NEXT: PseudoRET implicit $x10
423+
%0:gprb(p0) = COPY $x10
424+
%2:gprb(s64) = COPY $x11
425+
%9:gprb(s32) = G_SEXTLOAD %0(p0) :: (load (s8))
426+
%7:gprb(s32) = G_TRUNC %2(s64)
427+
%8:gprb(s32) = G_ADD %9, %7
428+
%5:gprb(s64) = G_ANYEXT %8(s32)
429+
$x10 = COPY %5(s64)
430+
PseudoRET implicit $x10
431+
432+
...
433+
---
434+
name: sextload_i16_i32
435+
legalized: true
436+
regBankSelected: true
437+
tracksRegLiveness: true
438+
body: |
439+
bb.0:
440+
liveins: $x10, $x11
441+
; CHECK-LABEL: name: sextload_i16_i32
442+
; CHECK: liveins: $x10, $x11
443+
; CHECK-NEXT: {{ $}}
444+
; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10
445+
; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x11
446+
; CHECK-NEXT: [[LH:%[0-9]+]]:gpr = LH [[COPY]], 0 :: (load (s16))
447+
; CHECK-NEXT: [[ADDW:%[0-9]+]]:gpr = ADDW [[LH]], [[COPY1]]
448+
; CHECK-NEXT: $x10 = COPY [[ADDW]]
449+
; CHECK-NEXT: PseudoRET implicit $x10
450+
%0:gprb(p0) = COPY $x10
451+
%2:gprb(s64) = COPY $x11
452+
%9:gprb(s32) = G_SEXTLOAD %0(p0) :: (load (s16))
453+
%7:gprb(s32) = G_TRUNC %2(s64)
454+
%8:gprb(s32) = G_ADD %9, %7
455+
%5:gprb(s64) = G_ANYEXT %8(s32)
456+
$x10 = COPY %5(s64)
457+
PseudoRET implicit $x10
458+
403459
...
404460
---
405461
name: load_fi_i64

0 commit comments

Comments
 (0)