[llvm] [RISCV] Set CostPerUse to 1 only when optimizing for size (PR #201501)

Pengcheng Wang via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 3 21:02:33 PDT 2026


================
@@ -1893,98 +1893,90 @@ define <16 x i8> @buildvec_v16i8_loads_gather(ptr %p) {
 ;
 ; RVA22U64-LABEL: buildvec_v16i8_loads_gather:
 ; RVA22U64:       # %bb.0:
-; RVA22U64-NEXT:    lbu a7, 0(a0)
+; RVA22U64-NEXT:    lbu a1, 0(a0)
 ; RVA22U64-NEXT:    lbu a2, 1(a0)
 ; RVA22U64-NEXT:    lbu a3, 22(a0)
 ; RVA22U64-NEXT:    lbu a4, 31(a0)
-; RVA22U64-NEXT:    lbu a6, 623(a0)
-; RVA22U64-NEXT:    lbu a5, 44(a0)
-; RVA22U64-NEXT:    lbu a1, 55(a0)
+; RVA22U64-NEXT:    lbu a5, 623(a0)
+; RVA22U64-NEXT:    lbu a6, 44(a0)
+; RVA22U64-NEXT:    lbu a7, 55(a0)
 ; RVA22U64-NEXT:    lbu t0, 75(a0)
 ; RVA22U64-NEXT:    lbu t1, 82(a0)
 ; RVA22U64-NEXT:    slli a2, a2, 8
 ; RVA22U64-NEXT:    slli a3, a3, 16
 ; RVA22U64-NEXT:    slli a4, a4, 24
-; RVA22U64-NEXT:    slli a5, a5, 32
-; RVA22U64-NEXT:    slli a1, a1, 40
-; RVA22U64-NEXT:    or a7, a7, a2
-; RVA22U64-NEXT:    or t3, a4, a3
-; RVA22U64-NEXT:    or t2, a1, a5
+; RVA22U64-NEXT:    slli a6, a6, 32
+; RVA22U64-NEXT:    slli a7, a7, 40
+; RVA22U64-NEXT:    or a1, a1, a2
+; RVA22U64-NEXT:    or a3, a3, a4
+; RVA22U64-NEXT:    or a2, a7, a6
 ; RVA22U64-NEXT:    lbu a4, 93(a0)
-; RVA22U64-NEXT:    lbu t4, 105(a0)
-; RVA22U64-NEXT:    lbu a2, 124(a0)
-; RVA22U64-NEXT:    lbu t5, 144(a0)
-; RVA22U64-NEXT:    slli a6, a6, 48
+; RVA22U64-NEXT:    lbu a6, 105(a0)
+; RVA22U64-NEXT:    lbu a7, 124(a0)
+; RVA22U64-NEXT:    lbu t2, 144(a0)
+; RVA22U64-NEXT:    slli a5, a5, 48
 ; RVA22U64-NEXT:    slli t0, t0, 56
 ; RVA22U64-NEXT:    slli a4, a4, 8
-; RVA22U64-NEXT:    or a3, t0, a6
+; RVA22U64-NEXT:    or a5, t0, a5
 ; RVA22U64-NEXT:    or a4, t1, a4
-; RVA22U64-NEXT:    lbu a5, 161(a0)
-; RVA22U64-NEXT:    lbu a1, 154(a0)
+; RVA22U64-NEXT:    lbu t0, 161(a0)
+; RVA22U64-NEXT:    lbu t1, 154(a0)
 ; RVA22U64-NEXT:    lbu a0, 163(a0)
-; RVA22U64-NEXT:    slli t4, t4, 16
-; RVA22U64-NEXT:    slli a5, a5, 24
-; RVA22U64-NEXT:    or a5, a5, t4
-; RVA22U64-NEXT:    slli a2, a2, 32
+; RVA22U64-NEXT:    slli a6, a6, 16
+; RVA22U64-NEXT:    slli t0, t0, 24
+; RVA22U64-NEXT:    or a6, t0, a6
+; RVA22U64-NEXT:    slli a7, a7, 32
 ; RVA22U64-NEXT:    slli a0, a0, 40
-; RVA22U64-NEXT:    or a0, a0, a2
-; RVA22U64-NEXT:    slli t5, t5, 48
-; RVA22U64-NEXT:    slli a1, a1, 56
-; RVA22U64-NEXT:    or a1, a1, t5
-; RVA22U64-NEXT:    or a2, a7, t3
-; RVA22U64-NEXT:    or a3, a3, t2
-; RVA22U64-NEXT:    or a4, a4, a5
-; RVA22U64-NEXT:    or a0, a0, a1
-; RVA22U64-NEXT:    or a2, a2, a3
-; RVA22U64-NEXT:    or a0, a0, a4
+; RVA22U64-NEXT:    or a0, a0, a7
+; RVA22U64-NEXT:    slli t2, t2, 48
+; RVA22U64-NEXT:    slli t1, t1, 56
+; RVA22U64-NEXT:    or a7, t1, t2
+; RVA22U64-NEXT:    or a1, a1, a3
+; RVA22U64-NEXT:    or a2, a2, a5
+; RVA22U64-NEXT:    or a3, a4, a6
+; RVA22U64-NEXT:    or a0, a7, a0
+; RVA22U64-NEXT:    or a1, a1, a2
+; RVA22U64-NEXT:    or a0, a0, a3
 ; RVA22U64-NEXT:    vsetivli zero, 2, e64, m1, ta, ma
-; RVA22U64-NEXT:    vmv.v.x v8, a2
+; RVA22U64-NEXT:    vmv.v.x v8, a1
 ; RVA22U64-NEXT:    vslide1down.vx v8, v8, a0
 ; RVA22U64-NEXT:    ret
 ;
 ; RVA22U64-PACK-LABEL: buildvec_v16i8_loads_gather:
 ; RVA22U64-PACK:       # %bb.0:
-; RVA22U64-PACK-NEXT:    addi sp, sp, -16
----------------
wangpc-pp wrote:

Small improvement.

https://github.com/llvm/llvm-project/pull/201501


More information about the llvm-commits mailing list