@@ -479,6 +479,18 @@ define i64 @addmul20(i64 %a, i64 %b) {
479
479
ret i64 %d
480
480
}
481
481
482
+ define i64 @addmul22 (i64 %a , i64 %b ) {
483
+ ; CHECK-LABEL: addmul22:
484
+ ; CHECK: # %bb.0:
485
+ ; CHECK-NEXT: li a2, 22
486
+ ; CHECK-NEXT: mul a0, a0, a2
487
+ ; CHECK-NEXT: add a0, a0, a1
488
+ ; CHECK-NEXT: ret
489
+ %c = mul i64 %a , 22
490
+ %d = add i64 %c , %b
491
+ ret i64 %d
492
+ }
493
+
482
494
define i64 @addmul24 (i64 %a , i64 %b ) {
483
495
; RV64I-LABEL: addmul24:
484
496
; RV64I: # %bb.0:
@@ -551,6 +563,67 @@ define i64 @addmul72(i64 %a, i64 %b) {
551
563
ret i64 %d
552
564
}
553
565
566
+ define i64 @addmul162 (i64 %a , i64 %b ) {
567
+ ; CHECK-LABEL: addmul162:
568
+ ; CHECK: # %bb.0:
569
+ ; CHECK-NEXT: li a2, 162
570
+ ; CHECK-NEXT: mul a0, a0, a2
571
+ ; CHECK-NEXT: add a0, a0, a1
572
+ ; CHECK-NEXT: ret
573
+ %c = mul i64 %a , 162
574
+ %d = add i64 %c , %b
575
+ ret i64 %d
576
+ }
577
+
578
+ define i64 @addmul180 (i64 %a , i64 %b ) {
579
+ ; CHECK-LABEL: addmul180:
580
+ ; CHECK: # %bb.0:
581
+ ; CHECK-NEXT: li a2, 180
582
+ ; CHECK-NEXT: mul a0, a0, a2
583
+ ; CHECK-NEXT: add a0, a0, a1
584
+ ; CHECK-NEXT: ret
585
+ %c = mul i64 %a , 180
586
+ %d = add i64 %c , %b
587
+ ret i64 %d
588
+ }
589
+
590
+ define i64 @add255mul180 (i64 %a ) {
591
+ ; CHECK-LABEL: add255mul180:
592
+ ; CHECK: # %bb.0:
593
+ ; CHECK-NEXT: li a1, 180
594
+ ; CHECK-NEXT: mul a0, a0, a1
595
+ ; CHECK-NEXT: addi a0, a0, 255
596
+ ; CHECK-NEXT: ret
597
+ %c = mul i64 %a , 180
598
+ %d = add i64 %c , 255
599
+ ret i64 %d
600
+ }
601
+
602
+
603
+ define i64 @addmul4096 (i64 %a , i64 %b ) {
604
+ ; CHECK-LABEL: addmul4096:
605
+ ; CHECK: # %bb.0:
606
+ ; CHECK-NEXT: slli a0, a0, 12
607
+ ; CHECK-NEXT: add a0, a0, a1
608
+ ; CHECK-NEXT: ret
609
+ %c = mul i64 %a , 4096
610
+ %d = add i64 %c , %b
611
+ ret i64 %d
612
+ }
613
+
614
+ define i64 @addmul4230 (i64 %a , i64 %b ) {
615
+ ; CHECK-LABEL: addmul4230:
616
+ ; CHECK: # %bb.0:
617
+ ; CHECK-NEXT: lui a2, 1
618
+ ; CHECK-NEXT: addiw a2, a2, 134
619
+ ; CHECK-NEXT: mul a0, a0, a2
620
+ ; CHECK-NEXT: add a0, a0, a1
621
+ ; CHECK-NEXT: ret
622
+ %c = mul i64 %a , 4230
623
+ %d = add i64 %c , %b
624
+ ret i64 %d
625
+ }
626
+
554
627
define i64 @mul96 (i64 %a ) {
555
628
; RV64I-LABEL: mul96:
556
629
; RV64I: # %bb.0:
0 commit comments