Skip to content

Commit 0fc4147

Browse files
committed
[RISCV] Add test coverage for mul X, C where C=2^N*(3,5,9)*(3,5,9)
1 parent ace6d5f commit 0fc4147

File tree

1 file changed

+85
-0
lines changed

1 file changed

+85
-0
lines changed

llvm/test/CodeGen/RISCV/rv64zba.ll

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -569,6 +569,60 @@ define i64 @addmul72(i64 %a, i64 %b) {
569569
ret i64 %d
570570
}
571571

572+
define i64 @mul50(i64 %a) {
573+
; CHECK-LABEL: mul50:
574+
; CHECK: # %bb.0:
575+
; CHECK-NEXT: li a1, 50
576+
; CHECK-NEXT: mul a0, a0, a1
577+
; CHECK-NEXT: ret
578+
%c = mul i64 %a, 50
579+
ret i64 %c
580+
}
581+
582+
define i64 @addmul50(i64 %a, i64 %b) {
583+
; CHECK-LABEL: addmul50:
584+
; CHECK: # %bb.0:
585+
; CHECK-NEXT: li a2, 50
586+
; CHECK-NEXT: mul a0, a0, a2
587+
; CHECK-NEXT: add a0, a0, a1
588+
; CHECK-NEXT: ret
589+
%c = mul i64 %a, 50
590+
%d = add i64 %c, %b
591+
ret i64 %d
592+
}
593+
594+
define i64 @mul100(i64 %a) {
595+
; CHECK-LABEL: mul100:
596+
; CHECK: # %bb.0:
597+
; CHECK-NEXT: li a1, 100
598+
; CHECK-NEXT: mul a0, a0, a1
599+
; CHECK-NEXT: ret
600+
%c = mul i64 %a, 100
601+
ret i64 %c
602+
}
603+
604+
define i64 @addmul100(i64 %a, i64 %b) {
605+
; CHECK-LABEL: addmul100:
606+
; CHECK: # %bb.0:
607+
; CHECK-NEXT: li a2, 100
608+
; CHECK-NEXT: mul a0, a0, a2
609+
; CHECK-NEXT: add a0, a0, a1
610+
; CHECK-NEXT: ret
611+
%c = mul i64 %a, 100
612+
%d = add i64 %c, %b
613+
ret i64 %d
614+
}
615+
616+
define i64 @mul162(i64 %a) {
617+
; CHECK-LABEL: mul162:
618+
; CHECK: # %bb.0:
619+
; CHECK-NEXT: li a1, 162
620+
; CHECK-NEXT: mul a0, a0, a1
621+
; CHECK-NEXT: ret
622+
%c = mul i64 %a, 162
623+
ret i64 %c
624+
}
625+
572626
define i64 @addmul162(i64 %a, i64 %b) {
573627
; CHECK-LABEL: addmul162:
574628
; CHECK: # %bb.0:
@@ -581,6 +635,16 @@ define i64 @addmul162(i64 %a, i64 %b) {
581635
ret i64 %d
582636
}
583637

638+
define i64 @mul180(i64 %a) {
639+
; CHECK-LABEL: mul180:
640+
; CHECK: # %bb.0:
641+
; CHECK-NEXT: li a1, 180
642+
; CHECK-NEXT: mul a0, a0, a1
643+
; CHECK-NEXT: ret
644+
%c = mul i64 %a, 180
645+
ret i64 %c
646+
}
647+
584648
define i64 @addmul180(i64 %a, i64 %b) {
585649
; CHECK-LABEL: addmul180:
586650
; CHECK: # %bb.0:
@@ -605,6 +669,27 @@ define i64 @add255mul180(i64 %a) {
605669
ret i64 %d
606670
}
607671

672+
define i64 @mul200(i64 %a) {
673+
; CHECK-LABEL: mul200:
674+
; CHECK: # %bb.0:
675+
; CHECK-NEXT: li a1, 200
676+
; CHECK-NEXT: mul a0, a0, a1
677+
; CHECK-NEXT: ret
678+
%c = mul i64 %a, 200
679+
ret i64 %c
680+
}
681+
682+
define i64 @addmul200(i64 %a, i64 %b) {
683+
; CHECK-LABEL: addmul200:
684+
; CHECK: # %bb.0:
685+
; CHECK-NEXT: li a2, 200
686+
; CHECK-NEXT: mul a0, a0, a2
687+
; CHECK-NEXT: add a0, a0, a1
688+
; CHECK-NEXT: ret
689+
%c = mul i64 %a, 200
690+
%d = add i64 %c, %b
691+
ret i64 %d
692+
}
608693

609694
define i64 @addmul4096(i64 %a, i64 %b) {
610695
; CHECK-LABEL: addmul4096:

0 commit comments

Comments
 (0)