Skip to content

Commit fb8f9d6

Browse files
committed
Pre-commit test.
1 parent 76a533c commit fb8f9d6

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

llvm/test/CodeGen/RISCV/rv64zbkb.ll

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -495,6 +495,38 @@ define void @pack_lo_packh_hi_packh_3(i8 %0, i8 %1, i8 %2, i8 %3, ptr %p) nounwi
495495
ret void
496496
}
497497

498+
define i32 @pack_lo_packh_hi_packh_4(i8 zeroext %0, i8 zeroext %1, i8 zeroext %2, i8 zeroext %3, ptr %p) nounwind {
499+
; RV64I-LABEL: pack_lo_packh_hi_packh_4:
500+
; RV64I: # %bb.0:
501+
; RV64I-NEXT: slli a1, a1, 8
502+
; RV64I-NEXT: slli a2, a2, 16
503+
; RV64I-NEXT: slliw a3, a3, 24
504+
; RV64I-NEXT: or a0, a0, a1
505+
; RV64I-NEXT: or a2, a2, a3
506+
; RV64I-NEXT: or a0, a0, a2
507+
; RV64I-NEXT: ret
508+
;
509+
; RV64ZBKB-LABEL: pack_lo_packh_hi_packh_4:
510+
; RV64ZBKB: # %bb.0:
511+
; RV64ZBKB-NEXT: slli a2, a2, 16
512+
; RV64ZBKB-NEXT: slliw a3, a3, 24
513+
; RV64ZBKB-NEXT: packh a0, a0, a1
514+
; RV64ZBKB-NEXT: or a0, a0, a2
515+
; RV64ZBKB-NEXT: or a0, a0, a3
516+
; RV64ZBKB-NEXT: ret
517+
%a = zext i8 %0 to i32
518+
%b = zext i8 %1 to i32
519+
%c = zext i8 %2 to i32
520+
%d = zext i8 %3 to i32
521+
%e = shl i32 %b, 8
522+
%f = shl i32 %c, 16
523+
%g = shl i32 %d, 24
524+
%h = or i32 %a, %e
525+
%i = or i32 %h, %f
526+
%j = or i32 %i, %g
527+
ret i32 %j
528+
}
529+
498530
define void @pack_lo_zext_hi_packh(i16 zeroext %0, i8 zeroext %1, i8 zeroext %2, ptr %p) nounwind {
499531
; RV64I-LABEL: pack_lo_zext_hi_packh:
500532
; RV64I: # %bb.0:

0 commit comments

Comments
 (0)