summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/Mips/llvm-ir
diff options
context:
space:
mode:
authorZoran Jovanovic <zoran.jovanovic@mips.com>2018-06-13 12:51:37 +0000
committerZoran Jovanovic <zoran.jovanovic@mips.com>2018-06-13 12:51:37 +0000
commit3a7654c15dd204fe3454f477fc576924e3686d0d (patch)
tree09e33b275f26d132d300698e00e8a455d6908e33 /llvm/test/CodeGen/Mips/llvm-ir
parent36b816f81409828133e47c29525d9df35cd4e1a7 (diff)
downloadbcm5719-llvm-3a7654c15dd204fe3454f477fc576924e3686d0d.tar.gz
bcm5719-llvm-3a7654c15dd204fe3454f477fc576924e3686d0d.zip
[mips][microMIPS] Extending size reduction pass with LWP and SWP
Author: milena.vujosevic.janicic Reviewers: sdardis The patch extends size reduction pass for MicroMIPS. It introduces reduction of two instructions into one instruction: Two SW instructions are transformed into one SWP instrucition. Two LW instructions are transformed into one LWP instrucition. Differential Revision: https://reviews.llvm.org/D39115 llvm-svn: 334595
Diffstat (limited to 'llvm/test/CodeGen/Mips/llvm-ir')
-rw-r--r--llvm/test/CodeGen/Mips/llvm-ir/and.ll3
-rw-r--r--llvm/test/CodeGen/Mips/llvm-ir/ashr.ll6
-rw-r--r--llvm/test/CodeGen/Mips/llvm-ir/lshr.ll6
-rw-r--r--llvm/test/CodeGen/Mips/llvm-ir/or.ll3
-rw-r--r--llvm/test/CodeGen/Mips/llvm-ir/shl.ll6
-rw-r--r--llvm/test/CodeGen/Mips/llvm-ir/xor.ll3
6 files changed, 9 insertions, 18 deletions
diff --git a/llvm/test/CodeGen/Mips/llvm-ir/and.ll b/llvm/test/CodeGen/Mips/llvm-ir/and.ll
index 7cc6fbb2a7a..cc361367001 100644
--- a/llvm/test/CodeGen/Mips/llvm-ir/and.ll
+++ b/llvm/test/CodeGen/Mips/llvm-ir/and.ll
@@ -335,8 +335,7 @@ define signext i128 @and_i128(i128 signext %a, i128 signext %b) {
;
; MM32R3-LABEL: and_i128:
; MM32R3: # %bb.0: # %entry
-; MM32R3-NEXT: lw $3, 20($sp)
-; MM32R3-NEXT: lw $2, 16($sp)
+; MM32R3-NEXT: lwp $2, 16($sp)
; MM32R3-NEXT: and16 $2, $4
; MM32R3-NEXT: and16 $3, $5
; MM32R3-NEXT: lw $4, 24($sp)
diff --git a/llvm/test/CodeGen/Mips/llvm-ir/ashr.ll b/llvm/test/CodeGen/Mips/llvm-ir/ashr.ll
index 140f545f239..dc19c9e81a9 100644
--- a/llvm/test/CodeGen/Mips/llvm-ir/ashr.ll
+++ b/llvm/test/CodeGen/Mips/llvm-ir/ashr.ll
@@ -791,8 +791,7 @@ define signext i128 @ashr_i128(i128 signext %a, i128 signext %b) {
; MMR3: # %bb.0: # %entry
; MMR3-NEXT: addiusp -48
; MMR3-NEXT: .cfi_def_cfa_offset 48
-; MMR3-NEXT: sw $17, 44($sp) # 4-byte Folded Spill
-; MMR3-NEXT: sw $16, 40($sp) # 4-byte Folded Spill
+; MMR3-NEXT: swp $16, 40($sp)
; MMR3-NEXT: .cfi_offset 17, -4
; MMR3-NEXT: .cfi_offset 16, -8
; MMR3-NEXT: move $8, $7
@@ -870,8 +869,7 @@ define signext i128 @ashr_i128(i128 signext %a, i128 signext %b) {
; MMR3-NEXT: movn $2, $11, $10
; MMR3-NEXT: move $3, $8
; MMR3-NEXT: move $4, $1
-; MMR3-NEXT: lw $16, 40($sp) # 4-byte Folded Reload
-; MMR3-NEXT: lw $17, 44($sp) # 4-byte Folded Reload
+; MMR3-NEXT: lwp $16, 40($sp)
; MMR3-NEXT: addiusp 48
; MMR3-NEXT: jrc $ra
;
diff --git a/llvm/test/CodeGen/Mips/llvm-ir/lshr.ll b/llvm/test/CodeGen/Mips/llvm-ir/lshr.ll
index 5f18295cd63..80682409a68 100644
--- a/llvm/test/CodeGen/Mips/llvm-ir/lshr.ll
+++ b/llvm/test/CodeGen/Mips/llvm-ir/lshr.ll
@@ -818,8 +818,7 @@ define signext i128 @lshr_i128(i128 signext %a, i128 signext %b) {
; MMR3: # %bb.0: # %entry
; MMR3-NEXT: addiusp -40
; MMR3-NEXT: .cfi_def_cfa_offset 40
-; MMR3-NEXT: sw $17, 36($sp) # 4-byte Folded Spill
-; MMR3-NEXT: sw $16, 32($sp) # 4-byte Folded Spill
+; MMR3-NEXT: swp $16, 32($sp)
; MMR3-NEXT: .cfi_offset 17, -4
; MMR3-NEXT: .cfi_offset 16, -8
; MMR3-NEXT: move $8, $7
@@ -896,8 +895,7 @@ define signext i128 @lshr_i128(i128 signext %a, i128 signext %b) {
; MMR3-NEXT: li16 $4, 0
; MMR3-NEXT: movz $2, $4, $10
; MMR3-NEXT: move $4, $1
-; MMR3-NEXT: lw $16, 32($sp) # 4-byte Folded Reload
-; MMR3-NEXT: lw $17, 36($sp) # 4-byte Folded Reload
+; MMR3-NEXT: lwp $16, 32($sp)
; MMR3-NEXT: addiusp 40
; MMR3-NEXT: jrc $ra
;
diff --git a/llvm/test/CodeGen/Mips/llvm-ir/or.ll b/llvm/test/CodeGen/Mips/llvm-ir/or.ll
index 7f9998e449c..ce22f08385b 100644
--- a/llvm/test/CodeGen/Mips/llvm-ir/or.ll
+++ b/llvm/test/CodeGen/Mips/llvm-ir/or.ll
@@ -176,8 +176,7 @@ define signext i128 @or_i128(i128 signext %a, i128 signext %b) {
;
; MM32-LABEL: or_i128:
; MM32: # %bb.0: # %entry
-; MM32-NEXT: lw $3, 20($sp)
-; MM32-NEXT: lw $2, 16($sp)
+; MM32-NEXT: lwp $2, 16($sp)
; MM32-NEXT: or16 $2, $4
; MM32-NEXT: or16 $3, $5
; MM32-NEXT: lw $4, 24($sp)
diff --git a/llvm/test/CodeGen/Mips/llvm-ir/shl.ll b/llvm/test/CodeGen/Mips/llvm-ir/shl.ll
index a6a635dac39..6c34f63cf06 100644
--- a/llvm/test/CodeGen/Mips/llvm-ir/shl.ll
+++ b/llvm/test/CodeGen/Mips/llvm-ir/shl.ll
@@ -847,8 +847,7 @@ define signext i128 @shl_i128(i128 signext %a, i128 signext %b) {
; MMR3: # %bb.0: # %entry
; MMR3-NEXT: addiusp -40
; MMR3-NEXT: .cfi_def_cfa_offset 40
-; MMR3-NEXT: sw $17, 36($sp) # 4-byte Folded Spill
-; MMR3-NEXT: sw $16, 32($sp) # 4-byte Folded Spill
+; MMR3-NEXT: swp $16, 32($sp)
; MMR3-NEXT: .cfi_offset 17, -4
; MMR3-NEXT: .cfi_offset 16, -8
; MMR3-NEXT: move $17, $7
@@ -926,8 +925,7 @@ define signext i128 @shl_i128(i128 signext %a, i128 signext %b) {
; MMR3-NEXT: movz $6, $3, $10
; MMR3-NEXT: move $3, $8
; MMR3-NEXT: move $5, $6
-; MMR3-NEXT: lw $16, 32($sp) # 4-byte Folded Reload
-; MMR3-NEXT: lw $17, 36($sp) # 4-byte Folded Reload
+; MMR3-NEXT: lwp $16, 32($sp)
; MMR3-NEXT: addiusp 40
; MMR3-NEXT: jrc $ra
;
diff --git a/llvm/test/CodeGen/Mips/llvm-ir/xor.ll b/llvm/test/CodeGen/Mips/llvm-ir/xor.ll
index 48291f868a2..54bb179b117 100644
--- a/llvm/test/CodeGen/Mips/llvm-ir/xor.ll
+++ b/llvm/test/CodeGen/Mips/llvm-ir/xor.ll
@@ -333,8 +333,7 @@ define signext i128 @xor_i128(i128 signext %a, i128 signext %b) {
;
; MM32R3-LABEL: xor_i128:
; MM32R3: # %bb.0: # %entry
-; MM32R3-NEXT: lw $3, 20($sp)
-; MM32R3-NEXT: lw $2, 16($sp)
+; MM32R3-NEXT: lwp $2, 16($sp)
; MM32R3-NEXT: xor16 $2, $4
; MM32R3-NEXT: xor16 $3, $5
; MM32R3-NEXT: lw $4, 24($sp)
OpenPOWER on IntegriCloud