[llvm] [Codegen][LegalizeIntegerTypes] Improve shift through stack (PR #96151)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 3 05:25:24 PDT 2024


================
@@ -398,197 +398,159 @@ define signext i128 @lshr_i128(i128 signext %a, i128 signext %b) {
 ; MIPS2:       # %bb.0: # %entry
 ; MIPS2-NEXT:    addiu $sp, $sp, -32
 ; MIPS2-NEXT:    .cfi_def_cfa_offset 32
-; MIPS2-NEXT:    swl $7, 28($sp)
-; MIPS2-NEXT:    swl $6, 24($sp)
-; MIPS2-NEXT:    swl $5, 20($sp)
-; MIPS2-NEXT:    swl $4, 16($sp)
-; MIPS2-NEXT:    swl $zero, 12($sp)
-; MIPS2-NEXT:    swl $zero, 8($sp)
-; MIPS2-NEXT:    swl $zero, 4($sp)
-; MIPS2-NEXT:    swl $zero, 0($sp)
-; MIPS2-NEXT:    addiu $1, $sp, 0
-; MIPS2-NEXT:    swr $7, 31($sp)
-; MIPS2-NEXT:    swr $6, 27($sp)
-; MIPS2-NEXT:    swr $5, 23($sp)
-; MIPS2-NEXT:    swr $4, 19($sp)
-; MIPS2-NEXT:    swr $zero, 15($sp)
-; MIPS2-NEXT:    swr $zero, 11($sp)
-; MIPS2-NEXT:    swr $zero, 7($sp)
-; MIPS2-NEXT:    swr $zero, 3($sp)
-; MIPS2-NEXT:    addiu $1, $1, 16
-; MIPS2-NEXT:    lw $2, 60($sp)
-; MIPS2-NEXT:    srl $3, $2, 3
-; MIPS2-NEXT:    andi $3, $3, 15
-; MIPS2-NEXT:    subu $1, $1, $3
-; MIPS2-NEXT:    lwl $3, 4($1)
-; MIPS2-NEXT:    lwr $3, 7($1)
-; MIPS2-NEXT:    sll $4, $3, 1
-; MIPS2-NEXT:    lwl $5, 8($1)
-; MIPS2-NEXT:    lwr $5, 11($1)
-; MIPS2-NEXT:    andi $2, $2, 7
-; MIPS2-NEXT:    not $6, $2
-; MIPS2-NEXT:    srlv $7, $5, $2
-; MIPS2-NEXT:    sllv $4, $4, $6
-; MIPS2-NEXT:    srlv $3, $3, $2
-; MIPS2-NEXT:    lwl $6, 0($1)
-; MIPS2-NEXT:    lwr $6, 3($1)
-; MIPS2-NEXT:    sll $8, $6, 1
-; MIPS2-NEXT:    xori $9, $2, 31
-; MIPS2-NEXT:    sllv $8, $8, $9
-; MIPS2-NEXT:    or $3, $3, $8
-; MIPS2-NEXT:    or $4, $7, $4
-; MIPS2-NEXT:    lwl $7, 12($1)
-; MIPS2-NEXT:    lwr $7, 15($1)
-; MIPS2-NEXT:    srlv $1, $7, $2
+; MIPS2-NEXT:    lw $1, 60($sp)
----------------
arsenm wrote:

This is probably better 

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


More information about the llvm-commits mailing list