aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGen/Mips/Fast-ISel
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGen/Mips/Fast-ISel')
-rw-r--r--test/CodeGen/Mips/Fast-ISel/br1.ll34
-rw-r--r--test/CodeGen/Mips/Fast-ISel/bswap1.ll58
-rw-r--r--test/CodeGen/Mips/Fast-ISel/callabi.ll538
-rw-r--r--test/CodeGen/Mips/Fast-ISel/check-disabled-mcpus.ll55
-rw-r--r--test/CodeGen/Mips/Fast-ISel/constexpr-address.ll18
-rw-r--r--test/CodeGen/Mips/Fast-ISel/div1.ll55
-rw-r--r--test/CodeGen/Mips/Fast-ISel/double-arg.ll14
-rw-r--r--test/CodeGen/Mips/Fast-ISel/fast-isel-softfloat-lower-args.ll11
-rw-r--r--test/CodeGen/Mips/Fast-ISel/fastalloca.ll32
-rw-r--r--test/CodeGen/Mips/Fast-ISel/fastcc-miss.ll15
-rw-r--r--test/CodeGen/Mips/Fast-ISel/fpcmpa.ll254
-rw-r--r--test/CodeGen/Mips/Fast-ISel/fpext.ll21
-rw-r--r--test/CodeGen/Mips/Fast-ISel/fpintconv.ll35
-rw-r--r--test/CodeGen/Mips/Fast-ISel/fptrunc.ll20
-rw-r--r--test/CodeGen/Mips/Fast-ISel/icmpa.ll210
-rw-r--r--test/CodeGen/Mips/Fast-ISel/loadstore2.ll85
-rw-r--r--test/CodeGen/Mips/Fast-ISel/loadstoreconv.ll179
-rw-r--r--test/CodeGen/Mips/Fast-ISel/loadstrconst.ll21
-rw-r--r--test/CodeGen/Mips/Fast-ISel/logopm.ll606
-rw-r--r--test/CodeGen/Mips/Fast-ISel/memtest1.ll74
-rw-r--r--test/CodeGen/Mips/Fast-ISel/mul1.ll16
-rw-r--r--test/CodeGen/Mips/Fast-ISel/nullvoid.ll11
-rw-r--r--test/CodeGen/Mips/Fast-ISel/overflt.ll64
-rw-r--r--test/CodeGen/Mips/Fast-ISel/rem1.ll56
-rw-r--r--test/CodeGen/Mips/Fast-ISel/retabi.ll108
-rw-r--r--test/CodeGen/Mips/Fast-ISel/sel1.ll126
-rw-r--r--test/CodeGen/Mips/Fast-ISel/shftopm.ll122
-rw-r--r--test/CodeGen/Mips/Fast-ISel/shift.ll24
-rw-r--r--test/CodeGen/Mips/Fast-ISel/simplestore.ll17
-rw-r--r--test/CodeGen/Mips/Fast-ISel/simplestorefp1.ll54
-rw-r--r--test/CodeGen/Mips/Fast-ISel/simplestorei.ll68
-rw-r--r--test/CodeGen/Mips/Fast-ISel/stackloadstore.ll18
32 files changed, 0 insertions, 3019 deletions
diff --git a/test/CodeGen/Mips/Fast-ISel/br1.ll b/test/CodeGen/Mips/Fast-ISel/br1.ll
deleted file mode 100644
index 2f2a33042701..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/br1.ll
+++ /dev/null
@@ -1,34 +0,0 @@
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32r2 \
-; RUN: < %s | FileCheck %s
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32 \
-; RUN: < %s | FileCheck %s
-
-@b = global i32 1, align 4
-@i = global i32 0, align 4
-@.str = private unnamed_addr constant [5 x i8] c"%i \0A\00", align 1
-
-; Function Attrs: nounwind
-define void @br() #0 {
-entry:
- %0 = load i32, i32* @b, align 4
- %tobool = icmp eq i32 %0, 0
- br i1 %tobool, label %if.end, label %if.then
-
-if.then: ; preds = %entry
- store i32 6754, i32* @i, align 4
- br label %if.end
-
-if.end: ; preds = %entry, %if.then
- ret void
-; FIXME: This instruction is redundant.
-; CHECK: xor $[[REG1:[0-9]+]], ${{[0-9]+}}, $zero
-; CHECK: sltiu $[[REG2:[0-9]+]], $[[REG1]], 1
-; CHECK: bgtz $[[REG2]], $BB[[BL:[0-9]+_[0-9]+]]
-; CHECK: nop
-; CHECK: addiu ${{[0-9]+}}, $zero, 6754
-; CHECK: sw ${{[0-9]+}}, 0(${{[0-9]+}})
-; CHECK: $BB[[BL]]:
-
-}
-
-attributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
diff --git a/test/CodeGen/Mips/Fast-ISel/bswap1.ll b/test/CodeGen/Mips/Fast-ISel/bswap1.ll
deleted file mode 100644
index bdbc41ce569c..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/bswap1.ll
+++ /dev/null
@@ -1,58 +0,0 @@
-; RUN: llc < %s -march=mipsel -mcpu=mips32 -O0 -relocation-model=pic \
-; RUN: -fast-isel-abort=3 | FileCheck %s \
-; RUN: -check-prefix=ALL -check-prefix=32R1
-; RUN: llc < %s -march=mipsel -mcpu=mips32r2 -O0 -relocation-model=pic \
-; RUN: -fast-isel-abort=3 | FileCheck %s \
-; RUN: -check-prefix=ALL -check-prefix=32R2
-
-@a = global i16 -21829, align 2
-@b = global i32 -1430532899, align 4
-@a1 = common global i16 0, align 2
-@b1 = common global i32 0, align 4
-
-declare i16 @llvm.bswap.i16(i16)
-declare i32 @llvm.bswap.i32(i32)
-
-define void @b16() {
- ; ALL-LABEL: b16:
-
- ; ALL: lw $[[A_ADDR:[0-9]+]], %got(a)($[[GOT_ADDR:[0-9]+]])
- ; ALL: lhu $[[A_VAL:[0-9]+]], 0($[[A_ADDR]])
-
- ; 32R1: sll $[[TMP1:[0-9]+]], $[[A_VAL]], 8
- ; 32R1: srl $[[TMP2:[0-9]+]], $[[A_VAL]], 8
- ; 32R1: or $[[TMP3:[0-9]+]], $[[TMP1]], $[[TMP2]]
- ; 32R1: andi $[[TMP4:[0-9]+]], $[[TMP3]], 65535
-
- ; 32R2: wsbh $[[RESULT:[0-9]+]], $[[A_VAL]]
-
- %1 = load i16, i16* @a, align 2
- %2 = call i16 @llvm.bswap.i16(i16 %1)
- store i16 %2, i16* @a1, align 2
- ret void
-}
-
-define void @b32() {
- ; ALL-LABEL: b32:
-
- ; ALL: lw $[[B_ADDR:[0-9]+]], %got(b)($[[GOT_ADDR:[0-9]+]])
- ; ALL: lw $[[B_VAL:[0-9]+]], 0($[[B_ADDR]])
-
- ; 32R1: srl $[[TMP1:[0-9]+]], $[[B_VAL]], 8
- ; 32R1: srl $[[TMP2:[0-9]+]], $[[B_VAL]], 24
- ; 32R1: andi $[[TMP3:[0-9]+]], $[[TMP1]], 65280
- ; 32R1: or $[[TMP4:[0-9]+]], $[[TMP2]], $[[TMP3]]
- ; 32R1: andi $[[TMP5:[0-9]+]], $[[B_VAL]], 65280
- ; 32R1: sll $[[TMP6:[0-9]+]], $[[TMP5]], 8
- ; 32R1: sll $[[TMP7:[0-9]+]], $[[B_VAL]], 24
- ; 32R1: or $[[TMP8:[0-9]+]], $[[TMP4]], $[[TMP6]]
- ; 32R1: or $[[RESULT:[0-9]+]], $[[TMP7]], $[[TMP8]]
-
- ; 32R2: wsbh $[[TMP:[0-9]+]], $[[B_VAL]]
- ; 32R2: rotr $[[RESULT:[0-9]+]], $[[TMP]], 16
-
- %1 = load i32, i32* @b, align 4
- %2 = call i32 @llvm.bswap.i32(i32 %1)
- store i32 %2, i32* @b1, align 4
- ret void
-}
diff --git a/test/CodeGen/Mips/Fast-ISel/callabi.ll b/test/CodeGen/Mips/Fast-ISel/callabi.ll
deleted file mode 100644
index 417ee2cd96fa..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/callabi.ll
+++ /dev/null
@@ -1,538 +0,0 @@
-; RUN: llc -march=mipsel -mcpu=mips32 -O0 -relocation-model=pic \
-; RUN: -fast-isel-abort=3 -verify-machineinstrs < %s | \
-; RUN: FileCheck %s -check-prefixes=ALL,32R1
-; RUN: llc -march=mipsel -mcpu=mips32r2 -O0 -relocation-model=pic \
-; RUN: -fast-isel-abort=3 -verify-machineinstrs < %s | \
-; RUN: FileCheck %s -check-prefixes=ALL,32R2
-
-declare void @xb(i8)
-
-define void @cxb() {
- ; ALL-LABEL: cxb:
-
- ; ALL: addiu $[[T0:[0-9]+]], $zero, 10
-
- ; 32R1: sll $[[T1:[0-9]+]], $[[T0]], 24
- ; 32R1: sra $4, $[[T1]], 24
-
- ; 32R2: seb $4, $[[T0]]
- call void @xb(i8 10)
- ret void
-}
-
-declare void @xh(i16)
-
-define void @cxh() {
- ; ALL-LABEL: cxh:
-
- ; ALL: addiu $[[T0:[0-9]+]], $zero, 10
-
- ; 32R1: sll $[[T1:[0-9]+]], $[[T0]], 16
- ; 32R1: sra $4, $[[T1]], 16
-
- ; 32R2: seh $4, $[[T0]]
- call void @xh(i16 10)
- ret void
-}
-
-declare void @xi(i32)
-
-define void @cxi() {
- ; ALL-LABEL: cxi:
-
- ; ALL-DAG: addiu $4, $zero, 10
- ; ALL-DAG: lw $25, %got(xi)(${{[0-9]+}})
- ; ALL: jalr $25
- call void @xi(i32 10)
- ret void
-}
-
-declare void @xbb(i8, i8)
-
-define void @cxbb() {
- ; ALL-LABEL: cxbb:
-
- ; ALL-DAG: addiu $[[T0:[0-9]+]], $zero, 76
- ; ALL-DAG: addiu $[[T1:[0-9]+]], $zero, 101
-
- ; 32R1-DAG: sll $[[T2:[0-9]+]], $[[T0]], 24
- ; 32R1-DAG: sra $[[T3:[0-9]+]], $[[T2]], 24
- ; 32R1-DAG: sll $[[T4:[0-9]+]], $[[T1]], 24
- ; 32R1-DAG: sra $[[T5:[0-9]+]], $[[T4]], 24
-
- ; 32R2-DAG: seb $4, $[[T0]]
- ; 32R2-DAG: seb $5, $[[T1]]
- call void @xbb(i8 76, i8 101)
- ret void
-}
-
-declare void @xhh(i16, i16)
-
-define void @cxhh() {
- ; ALL-LABEL: cxhh:
-
- ; ALL-DAG: addiu $[[T0:[0-9]+]], $zero, 76
- ; ALL-DAG: addiu $[[T1:[0-9]+]], $zero, 101
-
- ; 32R1-DAG: sll $[[T2:[0-9]+]], $[[T0]], 16
- ; 32R1-DAG: sra $[[T3:[0-9]+]], $[[T2]], 16
- ; 32R1-DAG: sll $[[T4:[0-9]+]], $[[T1]], 16
- ; 32R1-DAG: sra $[[T5:[0-9]+]], $[[T4]], 16
-
- ; 32R2-DAG: seh $4, $[[T0]]
- ; 32R2-DAG: seh $5, $[[T1]]
- call void @xhh(i16 76, i16 101)
- ret void
-}
-
-declare void @xii(i32, i32)
-
-define void @cxii() {
- ; ALL-LABEL: cxii:
-
- ; ALL-DAG: addiu $4, $zero, 746
- ; ALL-DAG: addiu $5, $zero, 892
- ; ALL-DAG: lw $25, %got(xii)(${{[0-9]+}})
- ; ALL: jalr $25
- call void @xii(i32 746, i32 892)
- ret void
-}
-
-declare void @xccc(i8, i8, i8)
-
-define void @cxccc() {
- ; ALL-LABEL: cxccc:
-
- ; ALL-DAG: addiu $[[T0:[0-9]+]], $zero, 88
- ; ALL-DAG: addiu $[[T1:[0-9]+]], $zero, 44
- ; ALL-DAG: addiu $[[T2:[0-9]+]], $zero, 11
-
- ; 32R1-DAG: sll $[[T3:[0-9]+]], $[[T0]], 24
- ; 32R1-DAG: sra $4, $[[T3]], 24
- ; 32R1-DAG: sll $[[T4:[0-9]+]], $[[T1]], 24
- ; 32R1-DAG: sra $5, $[[T4]], 24
- ; 32R1-DAG: sll $[[T5:[0-9]+]], $[[T2]], 24
- ; 32R1-DAG: sra $6, $[[T5]], 24
-
- ; 32R2-DAG: seb $4, $[[T0]]
- ; 32R2-DAG: seb $5, $[[T1]]
- ; 32R2-DAG: seb $6, $[[T2]]
- call void @xccc(i8 88, i8 44, i8 11)
- ret void
-}
-
-declare void @xhhh(i16, i16, i16)
-
-define void @cxhhh() {
- ; ALL-LABEL: cxhhh:
-
- ; ALL-DAG: addiu $[[T0:[0-9]+]], $zero, 88
- ; ALL-DAG: addiu $[[T1:[0-9]+]], $zero, 44
- ; ALL-DAG: addiu $[[T2:[0-9]+]], $zero, 11
-
- ; 32R1-DAG: sll $[[T3:[0-9]+]], $[[T0]], 16
- ; 32R1-DAG: sra $4, $[[T3]], 16
- ; 32R1-DAG: sll $[[T4:[0-9]+]], $[[T1]], 16
- ; 32R1-DAG: sra $5, $[[T4]], 16
- ; 32R1-DAG: sll $[[T5:[0-9]+]], $[[T2]], 16
- ; 32R1-DAG: sra $6, $[[T5]], 16
-
- ; 32R2-DAG: seh $4, $[[T0]]
- ; 32R2-DAG: seh $5, $[[T1]]
- ; 32R2-DAG: seh $6, $[[T2]]
- call void @xhhh(i16 88, i16 44, i16 11)
- ret void
-}
-
-declare void @xiii(i32, i32, i32)
-
-define void @cxiii() {
- ; ALL-LABEL: cxiii:
-
- ; ALL-DAG: addiu $4, $zero, 88
- ; ALL-DAG: addiu $5, $zero, 44
- ; ALL-DAG: addiu $6, $zero, 11
- ; ALL-DAG: lw $25, %got(xiii)(${{[0-9]+}})
- ; ALL: jalr $25
- call void @xiii(i32 88, i32 44, i32 11)
- ret void
-}
-
-declare void @xcccc(i8, i8, i8, i8)
-
-define void @cxcccc() {
- ; ALL-LABEL: cxcccc:
-
- ; ALL-DAG: addiu $[[T0:[0-9]+]], $zero, 88
- ; ALL-DAG: addiu $[[T1:[0-9]+]], $zero, 44
- ; ALL-DAG: addiu $[[T2:[0-9]+]], $zero, 11
- ; ALL-DAG: addiu $[[T3:[0-9]+]], $zero, 33
-
- ; FIXME: We should avoid the unnecessary spill/reload here.
-
- ; 32R1-DAG: sll $[[T4:[0-9]+]], $[[T0]], 24
- ; 32R1-DAG: sra $[[T5:[0-9]+]], $[[T4]], 24
- ; 32R1-DAG: sw $4, 16($sp)
- ; 32R1-DAG: move $4, $[[T5]]
- ; 32R1-DAG: sll $[[T6:[0-9]+]], $[[T1]], 24
- ; 32R1-DAG: sra $5, $[[T6]], 24
- ; 32R1-DAG: sll $[[T7:[0-9]+]], $[[T2]], 24
- ; 32R1-DAG: sra $6, $[[T7]], 24
- ; 32R1: lw $[[T8:[0-9]+]], 16($sp)
- ; 32R1: sll $[[T9:[0-9]+]], $[[T8]], 24
- ; 32R1: sra $7, $[[T9]], 24
-
- ; 32R2-DAG: seb $[[T4:[0-9]+]], $[[T0]]
- ; 32R2-DAG: sw $4, 16($sp)
- ; 32R2-DAG: move $4, $[[T4]]
- ; 32R2-DAG: seb $5, $[[T1]]
- ; 32R2-DAG: seb $6, $[[T2]]
- ; 32R2-DAG: lw $[[T5:[0-9]+]], 16($sp)
- ; 32R2: seb $7, $[[T5]]
- call void @xcccc(i8 88, i8 44, i8 11, i8 33)
- ret void
-}
-
-declare void @xhhhh(i16, i16, i16, i16)
-
-define void @cxhhhh() {
- ; ALL-LABEL: cxhhhh:
-
- ; ALL-DAG: addiu $[[T0:[0-9]+]], $zero, 88
- ; ALL-DAG: addiu $[[T1:[0-9]+]], $zero, 44
- ; ALL-DAG: addiu $[[T2:[0-9]+]], $zero, 11
- ; ALL-DAG: addiu $[[T3:[0-9]+]], $zero, 33
-
- ; FIXME: We should avoid the unnecessary spill/reload here.
-
- ; 32R1-DAG: sll $[[T4:[0-9]+]], $[[T0]], 16
- ; 32R1-DAG: sra $[[T5:[0-9]+]], $[[T4]], 16
- ; 32R1-DAG: sw $4, 16($sp)
- ; 32R1-DAG: move $4, $[[T5]]
- ; 32R1-DAG: sll $[[T6:[0-9]+]], $[[T1]], 16
- ; 32R1-DAG: sra $5, $[[T6]], 16
- ; 32R1-DAG: sll $[[T7:[0-9]+]], $[[T2]], 16
- ; 32R1-DAG: sra $6, $[[T7]], 16
- ; 32R1: lw $[[T8:[0-9]+]], 16($sp)
- ; 32R1: sll $[[T9:[0-9]+]], $[[T8]], 16
- ; 32R1: sra $7, $[[T9]], 16
-
- ; 32R2-DAG: seh $[[T4:[0-9]+]], $[[T0]]
- ; 32R2-DAG: sw $4, 16($sp)
- ; 32R2-DAG: move $4, $[[T4]]
- ; 32R2-DAG: seh $5, $[[T1]]
- ; 32R2-DAG: seh $6, $[[T2]]
- ; 32R2-DAG: lw $[[T5:[0-9]+]], 16($sp)
- ; 32R2: seh $7, $[[T5]]
- call void @xhhhh(i16 88, i16 44, i16 11, i16 33)
- ret void
-}
-
-declare void @xiiii(i32, i32, i32, i32)
-
-define void @cxiiii() {
- ; ALL-LABEL: cxiiii:
-
- ; ALL-DAG: addiu $4, $zero, 167
- ; ALL-DAG: addiu $5, $zero, 320
- ; ALL-DAG: addiu $6, $zero, 97
- ; ALL-DAG: addiu $7, $zero, 14
- ; ALL-DAG: lw $25, %got(xiiii)(${{[0-9]+}})
- ; ALL: jalr $25
- call void @xiiii(i32 167, i32 320, i32 97, i32 14)
- ret void
-}
-
-@c1 = global i8 -45, align 1
-@uc1 = global i8 27, align 1
-@s1 = global i16 -1789, align 2
-@us1 = global i16 1256, align 2
-
-define void @cxiiiiconv() {
- ; ALL-LABEL: cxiiiiconv:
-
- ; ALL: addu $[[REG_GP:[0-9]+]], ${{[0-9]+}}, ${{[0-9+]}}
- ; ALL-DAG: lw $[[REG_C1_ADDR:[0-9]+]], %got(c1)($[[REG_GP]])
- ; ALL-DAG: lbu $[[REG_C1:[0-9]+]], 0($[[REG_C1_ADDR]])
- ; 32R1-DAG: sll $[[REG_C1_1:[0-9]+]], $[[REG_C1]], 24
- ; 32R1-DAG: sra $4, $[[REG_C1_1]], 24
- ; 32R2-DAG: seb $4, $[[REG_C1]]
- ; FIXME: andi is superfulous
- ; ALL-DAG: lw $[[REG_UC1_ADDR:[0-9]+]], %got(uc1)($[[REG_GP]])
- ; ALL-DAG: lbu $[[REG_UC1:[0-9]+]], 0($[[REG_UC1_ADDR]])
- ; ALL-DAG: andi $5, $[[REG_UC1]], 255
- ; ALL-DAG: lw $[[REG_S1_ADDR:[0-9]+]], %got(s1)($[[REG_GP]])
- ; ALL-DAG: lhu $[[REG_S1:[0-9]+]], 0($[[REG_S1_ADDR]])
- ; 32R1-DAG: sll $[[REG_S1_1:[0-9]+]], $[[REG_S1]], 16
- ; 32R1-DAG: sra $6, $[[REG_S1_1]], 16
- ; 32R2-DAG: seh $6, $[[REG_S1]]
- ; FIXME andi is superfulous
- ; ALL-DAG: lw $[[REG_US1_ADDR:[0-9]+]], %got(us1)($[[REG_GP]])
- ; ALL-DAG: lhu $[[REG_US1:[0-9]+]], 0($[[REG_US1_ADDR]])
- ; ALL-DAG: andi $7, $[[REG_US1]], 65535
- ; ALL: jalr $25
- %1 = load i8, i8* @c1, align 1
- %conv = sext i8 %1 to i32
- %2 = load i8, i8* @uc1, align 1
- %conv1 = zext i8 %2 to i32
- %3 = load i16, i16* @s1, align 2
- %conv2 = sext i16 %3 to i32
- %4 = load i16, i16* @us1, align 2
- %conv3 = zext i16 %4 to i32
- call void @xiiii(i32 %conv, i32 %conv1, i32 %conv2, i32 %conv3)
- ret void
-}
-
-declare void @xf(float)
-
-define void @cxf() {
- ; ALL-LABEL: cxf:
-
- ; ALL: addu $[[REG_GP:[0-9]+]], ${{[0-9]+}}, ${{[0-9+]}}
- ; ALL: lui $[[REG_FPCONST_1:[0-9]+]], 17886
- ; ALL: ori $[[REG_FPCONST:[0-9]+]], $[[REG_FPCONST_1]], 17067
- ; ALL: mtc1 $[[REG_FPCONST]], $f12
- ; ALL: lw $25, %got(xf)($[[REG_GP]])
- ; ALL: jalr $25
- call void @xf(float 0x40BBC85560000000)
- ret void
-}
-
-declare void @xff(float, float)
-
-define void @cxff() {
- ; ALL-LABEL: cxff:
-
- ; ALL: addu $[[REG_GP:[0-9]+]], ${{[0-9]+}}, ${{[0-9+]}}
- ; ALL-DAG: lui $[[REG_FPCONST_1:[0-9]+]], 16314
- ; ALL-DAG: ori $[[REG_FPCONST:[0-9]+]], $[[REG_FPCONST_1]], 21349
- ; ALL-DAG: mtc1 $[[REG_FPCONST]], $f12
- ; ALL-DAG: lui $[[REG_FPCONST_2:[0-9]+]], 16593
- ; ALL-DAG: ori $[[REG_FPCONST_3:[0-9]+]], $[[REG_FPCONST_2]], 24642
- ; ALL-DAG: mtc1 $[[REG_FPCONST_3]], $f14
- ; ALL-DAG: lw $25, %got(xff)($[[REG_GP]])
- ; ALL: jalr $25
- call void @xff(float 0x3FF74A6CA0000000, float 0x401A2C0840000000)
- ret void
-}
-
-declare void @xfi(float, i32)
-
-define void @cxfi() {
- ; ALL-LABEL: cxfi:
-
- ; ALL: addu $[[REG_GP:[0-9]+]], ${{[0-9]+}}, ${{[0-9+]}}
- ; ALL-DAG: lui $[[REG_FPCONST_1:[0-9]+]], 16540
- ; ALL-DAG: ori $[[REG_FPCONST:[0-9]+]], $[[REG_FPCONST_1]], 33554
- ; ALL-DAG: mtc1 $[[REG_FPCONST]], $f12
- ; ALL-DAG: addiu $5, $zero, 102
- ; ALL-DAG: lw $25, %got(xfi)($[[REG_GP]])
- ; ALL: jalr $25
- call void @xfi(float 0x4013906240000000, i32 102)
- ret void
-}
-
-declare void @xfii(float, i32, i32)
-
-define void @cxfii() {
- ; ALL-LABEL: cxfii:
-
- ; ALL: addu $[[REG_GP:[0-9]+]], ${{[0-9]+}}, ${{[0-9+]}}
- ; ALL-DAG: lui $[[REG_FPCONST_1:[0-9]+]], 17142
- ; ALL-DAG: ori $[[REG_FPCONST:[0-9]+]], $[[REG_FPCONST_1]], 16240
- ; ALL-DAG: mtc1 $[[REG_FPCONST]], $f12
- ; ALL-DAG: addiu $5, $zero, 9993
- ; ALL-DAG: addiu $6, $zero, 10922
- ; ALL-DAG: lw $25, %got(xfii)($[[REG_GP]])
- ; ALL: jalr $25
- call void @xfii(float 0x405EC7EE00000000, i32 9993, i32 10922)
- ret void
-}
-
-declare void @xfiii(float, i32, i32, i32)
-
-define void @cxfiii() {
- ; ALL-LABEL: cxfiii:
-
- ; ALL: addu $[[REG_GP:[0-9]+]], ${{[0-9]+}}, ${{[0-9+]}}
- ; ALL-DAG: lui $[[REG_FPCONST_1:[0-9]+]], 17120
- ; ALL-DAG: ori $[[REG_FPCONST:[0-9]+]], $[[REG_FPCONST_1]], 14681
- ; ALL-DAG: mtc1 $[[REG_FPCONST]], $f12
- ; ALL-DAG: addiu $5, $zero, 3948
- ; ALL-DAG: lui $[[REG_I_1:[0-9]+]], 1
- ; ALL-DAG: ori $6, $[[REG_I_1]], 23475
- ; ALL-DAG: lui $[[REG_I_2:[0-9]+]], 1
- ; ALL-DAG: ori $7, $[[REG_I_2]], 45686
- ; ALL-DAG: lw $25, %got(xfiii)($[[REG_GP]])
- ; ALL: jalr $25
- call void @xfiii(float 0x405C072B20000000, i32 3948, i32 89011, i32 111222)
- ret void
-}
-
-declare void @xd(double)
-
-define void @cxd() {
- ; ALL-LABEL: cxd:
-
- ; ALL: addu $[[REG_GP:[0-9]+]], ${{[0-9]+}}, ${{[0-9+]}}
- ; ALL-DAG: lui $[[REG_FPCONST_1:[0-9]+]], 16514
- ; ALL-DAG: ori $[[REG_FPCONST_2:[0-9]+]], $[[REG_FPCONST_1]], 48037
- ; ALL-DAG: lui $[[REG_FPCONST_3:[0-9]+]], 58195
- ; ALL-DAG: ori $[[REG_FPCONST_4:[0-9]+]], $[[REG_FPCONST_3]], 63439
- ; ALL-DAG: mtc1 $[[REG_FPCONST_4]], $f12
- ; 32R1-DAG: mtc1 $[[REG_FPCONST_2]], $f13
- ; 32R2-DAG: mthc1 $[[REG_FPCONST_2]], $f12
- ; ALL-DAG: lw $25, %got(xd)($[[REG_GP]])
- ; ALL: jalr $25
- call void @xd(double 5.994560e+02)
- ret void
-}
-
-declare void @xdd(double, double)
-
-define void @cxdd() {
- ; ALL-LABEL: cxdd:
-
- ; ALL: addu $[[REG_GP:[0-9]+]], ${{[0-9]+}}, ${{[0-9+]}}
- ; ALL-DAG: lui $[[REG_FPCONST_1:[0-9]+]], 16531
- ; ALL-DAG: ori $[[REG_FPCONST_2:[0-9]+]], $[[REG_FPCONST_1]], 19435
- ; ALL-DAG: lui $[[REG_FPCONST_3:[0-9]+]], 34078
- ; ALL-DAG: ori $[[REG_FPCONST_4:[0-9]+]], $[[REG_FPCONST_3]], 47186
- ; ALL-DAG: mtc1 $[[REG_FPCONST_4]], $f12
- ; 32R1-DAG: mtc1 $[[REG_FPCONST_2]], $f13
- ; 32R2-DAG: mthc1 $[[REG_FPCONST_2]], $f12
- ; ALL-DAG: lui $[[REG_FPCONST_1:[0-9]+]], 16629
- ; ALL-DAG: ori $[[REG_FPCONST_2:[0-9]+]], $[[REG_FPCONST_1]], 45873
- ; ALL-DAG: lui $[[REG_FPCONST_3:[0-9]+]], 63438
- ; ALL-DAG: ori $[[REG_FPCONST_4:[0-9]+]], $[[REG_FPCONST_3]], 55575
- ; ALL-DAG: mtc1 $[[REG_FPCONST_4]], $f14
- ; 32R1-DAG: mtc1 $[[REG_FPCONST_2]], $f15
- ; 32R2-DAG: mthc1 $[[REG_FPCONST_2]], $f14
- ; ALL-DAG: lw $25, %got(xdd)($[[REG_GP]])
- ; ALL: jalr $25
- call void @xdd(double 1.234980e+03, double 0x40F5B331F7CED917)
- ret void
-}
-
-declare void @xif(i32, float)
-
-define void @cxif() {
- ; ALL-LABEL: cxif:
-
- ; ALL: addu $[[REG_GP:[0-9]+]], ${{[0-9]+}}, ${{[0-9+]}}
- ; ALL-DAG: addiu $4, $zero, 345
- ; ALL-DAG: lui $[[REGF_1:[0-9]+]], 17374
- ; ALL-DAG: ori $[[REGF_2:[0-9]+]], $[[REGF_1]], 29393
- ; ALL-DAG: mtc1 $[[REGF_2]], $f[[REGF_3:[0-9]+]]
- ; ALL-DAG: mfc1 $5, $f[[REGF_3]]
- ; ALL-DAG: lw $25, %got(xif)($[[REG_GP]])
- ; ALL: jalr $25
- call void @xif(i32 345, float 0x407BCE5A20000000)
- ret void
-}
-
-declare void @xiff(i32, float, float)
-
-define void @cxiff() {
- ; ALL-LABEL: cxiff:
-
- ; ALL: addu $[[REG_GP:[0-9]+]], ${{[0-9]+}}, ${{[0-9+]}}
- ; ALL-DAG: addiu $4, $zero, 12239
- ; ALL-DAG: lui $[[REGF0_1:[0-9]+]], 17526
- ; ALL-DAG: ori $[[REGF0_2:[0-9]+]], $[[REGF0_1]], 55706
- ; ALL-DAG: mtc1 $[[REGF0_2]], $f[[REGF0_3:[0-9]+]]
- ; ALL-DAG: lui $[[REGF1_1:[0-9]+]], 16543
- ; ALL-DAG: ori $[[REGF1_2:[0-9]+]], $[[REGF1_1]], 65326
- ; ALL: mtc1 $[[REGF1_2]], $f[[REGF1_3:[0-9]+]]
- ; ALL-DAG: mfc1 $5, $f[[REGF0_3]]
- ; ALL-DAG: mfc1 $6, $f[[REGF1_3]]
- ; ALL-DAG: lw $25, %got(xiff)($[[REG_GP]])
- ; ALL: jalr $25
- call void @xiff(i32 12239, float 0x408EDB3340000000, float 0x4013FFE5C0000000)
- ret void
-}
-
-declare void @xifi(i32, float, i32)
-
-define void @cxifi() {
- ; ALL-LABEL: cxifi:
-
- ; ALL: addu $[[REG_GP:[0-9]+]], ${{[0-9]+}}, ${{[0-9+]}}
- ; ALL-DAG: addiu $4, $zero, 887
- ; ALL-DAG: lui $[[REGF_1:[0-9]+]], 16659
- ; ALL-DAG: ori $[[REGF_2:[0-9]+]], $[[REGF_1]], 48759
- ; ALL-DAG: mtc1 $[[REGF_2]], $f[[REGF_3:[0-9]+]]
- ; ALL-DAG: mfc1 $5, $f[[REGF_3]]
- ; ALL-DAG: addiu $6, $zero, 888
- ; ALL-DAG: lw $25, %got(xifi)($[[REG_GP]])
- ; ALL: jalr $25
- call void @xifi(i32 887, float 0x402277CEE0000000, i32 888)
- ret void
-}
-
-declare void @xifif(i32, float, i32, float)
-
-define void @cxifif() {
- ; ALL-LABEL: cxifif:
-
- ; ALL: addu $[[REG_GP:[0-9]+]], ${{[0-9]+}}, ${{[0-9+]}}
- ; ALL-DAG: lui $[[REGI:[0-9]+]], 1
- ; ALL-DAG: ori $4, $[[REGI]], 2238
- ; ALL-DAG: lui $[[REGF0_1:[0-9]+]], 17527
- ; ALL-DAG: ori $[[REGF0_2:[0-9]+]], $[[REGF0_1]], 2015
- ; ALL-DAG: mtc1 $[[REGF0_2]], $f[[REGF0_3:[0-9]+]]
- ; ALL-DAG: addiu $6, $zero, 9991
- ; ALL-DAG: lui $[[REGF1_1:[0-9]+]], 17802
- ; ALL-DAG: ori $[[REGF1_2:[0-9]+]], $[[REGF1_1]], 58470
- ; ALL: mtc1 $[[REGF1_2]], $f[[REGF1_3:[0-9]+]]
- ; ALL-DAG: mfc1 $5, $f[[REGF0_3]]
- ; ALL-DAG: mfc1 $7, $f[[REGF1_3]]
- ; ALL-DAG: lw $25, %got(xifif)($[[REG_GP]])
- ; ALL: jalr $25
- call void @xifif(i32 67774, float 0x408EE0FBE0000000,
- i32 9991, float 0x40B15C8CC0000000)
- ret void
-}
-
-declare void @xiffi(i32, float, float, i32)
-
-define void @cxiffi() {
- ; ALL-LABEL: cxiffi:
-
- ; ALL: addu $[[REG_GP:[0-9]+]], ${{[0-9]+}}, ${{[0-9+]}}
- ; ALL-DAG: addiu $4, $zero, 45
- ; ALL-DAG: lui $[[REGF0_1:[0-9]+]], 16307
- ; ALL-DAG: ori $[[REGF0_2:[0-9]+]], $[[REGF0_1]], 13107
- ; ALL-DAG: mtc1 $[[REGF0_2]], $f[[REGF0_3:[0-9]+]]
- ; ALL-DAG: lui $[[REGF1_1:[0-9]+]], 17529
- ; ALL-DAG: ori $[[REGF1_2:[0-9]+]], $[[REGF1_1]], 39322
- ; ALL: mtc1 $[[REGF1_2]], $f[[REGF1_3:[0-9]+]]
- ; ALL-DAG: addiu $7, $zero, 234
- ; ALL-DAG: mfc1 $5, $f[[REGF0_3]]
- ; ALL-DAG: mfc1 $6, $f[[REGF1_3]]
- ; ALL-DAG: lw $25, %got(xiffi)($[[REG_GP]])
- ; ALL: jalr $25
- call void @xiffi(i32 45, float 0x3FF6666660000000,
- float 0x408F333340000000, i32 234)
- ret void
-}
-
-declare void @xifii(i32, float, i32, i32)
-
-define void @cxifii() {
- ; ALL-LABEL: cxifii:
-
- ; ALL-DAG: addu $[[REG_GP:[0-9]+]], ${{[0-9]+}}, ${{[0-9+]}}
- ; ALL-DAG: addiu $4, $zero, 12239
- ; ALL-DAG: lui $[[REGF_1:[0-9]+]], 17526
- ; ALL-DAG: ori $[[REGF_2:[0-9]+]], $[[REGF_1]], 55706
- ; ALL-DAG: mtc1 $[[REGF_2]], $f[[REGF_3:[0-9]+]]
- ; ALL-DAG: mfc1 $5, $f[[REGF_3]]
- ; ALL-DAG: lui $[[REGI2:[0-9]+]], 15
- ; ALL-DAG: ori $6, $[[REGI2]], 15837
- ; ALL-DAG: addiu $7, $zero, 1234
- ; ALL-DAG: lw $25, %got(xifii)($[[REG_GP]])
- ; ALL: jalr $25
- call void @xifii(i32 12239, float 0x408EDB3340000000, i32 998877, i32 1234)
- ret void
-}
diff --git a/test/CodeGen/Mips/Fast-ISel/check-disabled-mcpus.ll b/test/CodeGen/Mips/Fast-ISel/check-disabled-mcpus.ll
deleted file mode 100644
index b8973efda179..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/check-disabled-mcpus.ll
+++ /dev/null
@@ -1,55 +0,0 @@
-; Targets where we should not enable FastISel.
-; RUN: llc -march=mips -mcpu=mips2 -O0 -relocation-model=pic \
-; RUN: -pass-remarks-missed=isel <%s 2>&1 | FileCheck %s
-; RUN: llc -march=mips -mcpu=mips3 -O0 -relocation-model=pic -target-abi n64 \
-; RUN: -pass-remarks-missed=isel <%s 2>&1 | FileCheck %s
-; RUN: llc -march=mips -mcpu=mips4 -O0 -relocation-model=pic -target-abi n64 \
-; RUN: -pass-remarks-missed=isel <%s 2>&1 | FileCheck %s
-
-; RUN: llc -march=mips -mcpu=mips32r6 -O0 -relocation-model=pic \
-; RUN: -pass-remarks-missed=isel <%s 2>&1 | FileCheck %s
-
-; RUN: llc -march=mips -mattr=mips16 -O0 -relocation-model=pic \
-; RUN: -pass-remarks-missed=isel <%s 2>&1 | FileCheck %s
-
-; RUN: llc -march=mips -mcpu=mips32r2 -mattr=+micromips -O0 -relocation-model=pic \
-; RUN: -pass-remarks-missed=isel <%s 2>&1 | FileCheck %s
-; RUN: llc -march=mips -mcpu=mips32r3 -mattr=+micromips -O0 -relocation-model=pic \
-; RUN: -pass-remarks-missed=isel <%s 2>&1 | FileCheck %s
-; RUN: llc -march=mips -mcpu=mips32r5 -mattr=+micromips -O0 -relocation-model=pic \
-; RUN: -pass-remarks-missed=isel <%s 2>&1 | FileCheck %s
-
-; RUN: llc -march=mips -mcpu=mips64 -O0 -relocation-model=pic -target-abi n64 \
-; RUN: -pass-remarks-missed=isel <%s 2>&1 | FileCheck %s
-; RUN: llc -march=mips -mcpu=mips64r2 -O0 -relocation-model=pic -target-abi n64 \
-; RUN: -pass-remarks-missed=isel <%s 2>&1 | FileCheck %s
-; RUN: llc -march=mips -mcpu=mips64r3 -O0 -relocation-model=pic -target-abi n64 \
-; RUN: -pass-remarks-missed=isel <%s 2>&1 | FileCheck %s
-; RUN: llc -march=mips -mcpu=mips64r5 -O0 -relocation-model=pic -target-abi n64 \
-; RUN: -pass-remarks-missed=isel <%s 2>&1 | FileCheck %s
-; RUN: llc -march=mips -mcpu=mips32r6 -O0 -relocation-model=pic \
-; RUN: -pass-remarks-missed=isel <%s 2>&1 | FileCheck %s
-
-; Valid targets for FastISel.
-; RUN: llc -march=mips -mcpu=mips32r0 -O0 -relocation-model=pic \
-; RUN: -pass-remarks-missed=isel <%s 2>&1 | FileCheck %s -check-prefix=FISEL
-; RUN: llc -march=mips -mcpu=mips32r2 -O0 -relocation-model=pic \
-; RUN: -pass-remarks-missed=isel <%s 2>&1 | FileCheck %s -check-prefix=FISEL
-
-; The CHECK prefix is being used by those targets that do not support FastISel.
-; By checking that we don't emit the "FastISel missed terminator..." message,
-; we ensure that we do not generate code through FastISel.
-
-; CHECK-NOT: FastISel missed terminator: ret i64 0
-
-; The above CHECK will only be valid as long as we *do* emit the missed
-; terminator message for targets that support FastISel. If we add support
-; for i64 return values in the future, then the following FISEL check-prefix
-; will fail and we will have to come up with a new test.
-
-; FISEL: FastISel missed terminator: ret i64 0
-
-define i64 @foo() {
-entry:
- ret i64 0
-}
diff --git a/test/CodeGen/Mips/Fast-ISel/constexpr-address.ll b/test/CodeGen/Mips/Fast-ISel/constexpr-address.ll
deleted file mode 100644
index f27791a9241e..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/constexpr-address.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llc -march=mipsel -mcpu=mips32 -relocation-model=pic \
-; RUN: -fast-isel=true -fast-isel-abort=3 < %s | FileCheck %s
-; RUN: llc -march=mipsel -mcpu=mips32r2 -relocation-model=pic \
-; RUN: -fast-isel=true -fast-isel-abort=3 < %s | FileCheck %s
-
-@ARR = external global [10 x i32], align 4
-
-define void @foo() {
-; CHECK-LABEL: foo
-
-; CHECK-DAG: lw $[[ARR:[0-9]+]], %got(ARR)({{.*}})
-; CHECK-DAG: addiu $[[T0:[0-9]+]], $zero, 12345
-; CHECK: sw $[[T0]], 8($[[ARR]])
-
-entry:
- store i32 12345, i32* getelementptr inbounds ([10 x i32], [10 x i32]* @ARR, i32 0, i32 2), align 4
- ret void
-}
diff --git a/test/CodeGen/Mips/Fast-ISel/div1.ll b/test/CodeGen/Mips/Fast-ISel/div1.ll
deleted file mode 100644
index f565af258f26..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/div1.ll
+++ /dev/null
@@ -1,55 +0,0 @@
-; RUN: llc < %s -march=mipsel -mcpu=mips32 -O0 -relocation-model=pic \
-; RUN: -fast-isel-abort=3 | FileCheck %s
-; RUN: llc < %s -march=mipsel -mcpu=mips32r2 -O0 -relocation-model=pic \
-; RUN: -fast-isel-abort=3 | FileCheck %s
-
-@sj = global i32 200000, align 4
-@sk = global i32 -47, align 4
-@uj = global i32 200000, align 4
-@uk = global i32 43, align 4
-@si = common global i32 0, align 4
-@ui = common global i32 0, align 4
-
-define void @divs() {
- ; CHECK-LABEL: divs:
-
- ; CHECK: lui $[[GOT1:[0-9]+]], %hi(_gp_disp)
- ; CHECK: addiu $[[GOT2:[0-9]+]], $[[GOT1]], %lo(_gp_disp)
- ; CHECK: addu $[[GOT:[0-9]+]], $[[GOT2:[0-9]+]], $25
- ; CHECK-DAG: lw $[[I_ADDR:[0-9]+]], %got(si)($[[GOT]])
- ; CHECK-DAG: lw $[[K_ADDR:[0-9]+]], %got(sk)($[[GOT]])
- ; CHECK-DAG: lw $[[J_ADDR:[0-9]+]], %got(sj)($[[GOT]])
- ; CHECK-DAG: lw $[[J:[0-9]+]], 0($[[J_ADDR]])
- ; CHECK-DAG: lw $[[K:[0-9]+]], 0($[[K_ADDR]])
- ; CHECK-DAG: div $zero, $[[J]], $[[K]]
- ; CHECK-DAG: teq $[[K]], $zero, 7
- ; CHECK-DAG: mflo $[[RESULT:[0-9]+]]
- ; CHECK: sw $[[RESULT]], 0($[[I_ADDR]])
- %1 = load i32, i32* @sj, align 4
- %2 = load i32, i32* @sk, align 4
- %div = sdiv i32 %1, %2
- store i32 %div, i32* @si, align 4
- ret void
-}
-
-define void @divu() {
- ; CHECK-LABEL: divu:
-
- ; CHECK: lui $[[GOT1:[0-9]+]], %hi(_gp_disp)
- ; CHECK: addiu $[[GOT2:[0-9]+]], $[[GOT1]], %lo(_gp_disp)
- ; CHECK: addu $[[GOT:[0-9]+]], $[[GOT2:[0-9]+]], $25
- ; CHECK-DAG: lw $[[I_ADDR:[0-9]+]], %got(ui)($[[GOT]])
- ; CHECK-DAG: lw $[[K_ADDR:[0-9]+]], %got(uk)($[[GOT]])
- ; CHECK-DAG: lw $[[J_ADDR:[0-9]+]], %got(uj)($[[GOT]])
- ; CHECK-DAG: lw $[[J:[0-9]+]], 0($[[J_ADDR]])
- ; CHECK-DAG: lw $[[K:[0-9]+]], 0($[[K_ADDR]])
- ; CHECK-DAG: divu $zero, $[[J]], $[[K]]
- ; CHECK-DAG: teq $[[K]], $zero, 7
- ; CHECK-DAG: mflo $[[RESULT:[0-9]+]]
- ; CHECK: sw $[[RESULT]], 0($[[I_ADDR]])
- %1 = load i32, i32* @uj, align 4
- %2 = load i32, i32* @uk, align 4
- %div = udiv i32 %1, %2
- store i32 %div, i32* @ui, align 4
- ret void
-}
diff --git a/test/CodeGen/Mips/Fast-ISel/double-arg.ll b/test/CodeGen/Mips/Fast-ISel/double-arg.ll
deleted file mode 100644
index eb592189e601..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/double-arg.ll
+++ /dev/null
@@ -1,14 +0,0 @@
-; RUN: not llc -march=mipsel -mcpu=mips32r2 -mattr=+fp64 \
-; RUN: -O0 -relocation-model=pic -fast-isel-abort=3 < %s
-
-; Check that FastISel aborts when we have 64bit FPU registers. FastISel currently
-; supports AFGR64 only, which uses paired 32 bit registers.
-
-define zeroext i1 @f(double %value) {
-entry:
-; CHECK-LABEL: f:
-; CHECK: sdc1
- %value.addr = alloca double, align 8
- store double %value, double* %value.addr, align 8
- ret i1 false
-}
diff --git a/test/CodeGen/Mips/Fast-ISel/fast-isel-softfloat-lower-args.ll b/test/CodeGen/Mips/Fast-ISel/fast-isel-softfloat-lower-args.ll
deleted file mode 100644
index 24161ca82382..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/fast-isel-softfloat-lower-args.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: not llc -march=mipsel -mcpu=mips32r2 -mattr=+soft-float \
-; RUN: -O0 -fast-isel-abort=3 -relocation-model=pic < %s
-
-; Test that FastISel aborts instead of trying to lower arguments for soft-float.
-
-define void @__signbit(double %__x) {
-entry:
- %__x.addr = alloca double, align 8
- store double %__x, double* %__x.addr, align 8
- ret void
-}
diff --git a/test/CodeGen/Mips/Fast-ISel/fastalloca.ll b/test/CodeGen/Mips/Fast-ISel/fastalloca.ll
deleted file mode 100644
index c420a0445786..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/fastalloca.ll
+++ /dev/null
@@ -1,32 +0,0 @@
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32r2 \
-; RUN: < %s -verify-machineinstrs | FileCheck %s
-
-%struct.x = type { i32 }
-
-@i = common global i32 0, align 4
-
-define i32 @foobar(i32 signext %x) {
-entry:
-; CHECK-LABEL: foobar:
- %retval = alloca i32, align 4
- %x.addr = alloca i32, align 4
- %a = alloca %struct.x, align 4
- %c = alloca %struct.x*, align 4
- store i32 %x, i32* %x.addr, align 4
- %x1 = getelementptr inbounds %struct.x, %struct.x* %a, i32 0, i32 0
- %0 = load i32, i32* %x.addr, align 4
- store i32 %0, i32* %x1, align 4
- store %struct.x* %a, %struct.x** %c, align 4
- %1 = load %struct.x*, %struct.x** %c, align 4
- %x2 = getelementptr inbounds %struct.x, %struct.x* %1, i32 0, i32 0
- %2 = load i32, i32* %x2, align 4
- store i32 %2, i32* @i, align 4
- %3 = load i32, i32* %retval
-; CHECK-DAG: lw $[[I_ADDR:[0-9]+]], %got(i)($[[REG_GP:[0-9]+]])
-; CHECK-DAG: addiu $[[A_ADDR:[0-9]+]], $sp, 8
-; CHECK-DAG: sw $[[A_ADDR]], [[A_ADDR_FI:[0-9]+]]($sp)
-; CHECK-DAG: lw $[[A_ADDR2:[0-9]+]], [[A_ADDR_FI]]($sp)
-; CHECK-DAG: lw $[[A_X:[0-9]+]], 0($[[A_ADDR2]])
-; CHECK-DAG: sw $[[A_X]], 0($[[I_ADDR]])
- ret i32 %3
-}
diff --git a/test/CodeGen/Mips/Fast-ISel/fastcc-miss.ll b/test/CodeGen/Mips/Fast-ISel/fastcc-miss.ll
deleted file mode 100644
index 0aec8d506f77..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/fastcc-miss.ll
+++ /dev/null
@@ -1,15 +0,0 @@
-; RUN: llc < %s -march=mipsel -mcpu=mips32r2 -O0 -relocation-model=pic \
-; RUN: -pass-remarks-missed=isel 2>&1 | FileCheck %s
-
-; CHECK: FastISel missed call:
-; CHECK-SAME: %call = call fastcc i32 @foo(i32 signext %a, i32 signext %b)
-
-define internal i32 @bar(i32 signext %a, i32 signext %b) {
- %s = and i32 %a, %b
- ret i32 %s
-}
-
-define i32 @foo(i32 signext %a, i32 signext %b) {
- %call = call fastcc i32 @foo(i32 signext %a, i32 signext %b)
- ret i32 %call
-}
diff --git a/test/CodeGen/Mips/Fast-ISel/fpcmpa.ll b/test/CodeGen/Mips/Fast-ISel/fpcmpa.ll
deleted file mode 100644
index b27b20c8f719..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/fpcmpa.ll
+++ /dev/null
@@ -1,254 +0,0 @@
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32r2 \
-; RUN: -verify-machineinstrs < %s | FileCheck %s
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32 \
-; RUN: -verify-machineinstrs < %s | FileCheck %s
-
-@f1 = common global float 0.000000e+00, align 4
-@f2 = common global float 0.000000e+00, align 4
-@b1 = common global i32 0, align 4
-@d1 = common global double 0.000000e+00, align 8
-@d2 = common global double 0.000000e+00, align 8
-
-; Function Attrs: nounwind
-define void @feq1() {
-entry:
- %0 = load float, float* @f1, align 4
- %1 = load float, float* @f2, align 4
- %cmp = fcmp oeq float %0, %1
-; CHECK-LABEL: feq1:
-; CHECK-DAG: lw $[[REG_F2_GOT:[0-9]+]], %got(f2)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_F1_GOT:[0-9]+]], %got(f1)(${{[0-9]+}})
-; CHECK-DAG: lwc1 $f[[REG_F2:[0-9]+]], 0($[[REG_F2_GOT]])
-; CHECK-DAG: lwc1 $f[[REG_F1:[0-9]+]], 0($[[REG_F1_GOT]])
-; CHECK-DAG: addiu $[[REG_ZERO:[0-9]+]], $zero, 0
-; CHECK-DAG: addiu $[[REG_ONE:[0-9]+]], $zero, 1
-; CHECK: c.eq.s $f[[REG_F1]], $f[[REG_F2]]
-; CHECK: movt $[[REG_ZERO]], $[[REG_ONE]], $fcc0
-
- %conv = zext i1 %cmp to i32
- store i32 %conv, i32* @b1, align 4
- ret void
-}
-
-; Function Attrs: nounwind
-define void @fne1() {
-entry:
- %0 = load float, float* @f1, align 4
- %1 = load float, float* @f2, align 4
- %cmp = fcmp une float %0, %1
-; CHECK-LABEL: fne1:
-; CHECK-DAG: lw $[[REG_F2_GOT:[0-9]+]], %got(f2)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_F1_GOT:[0-9]+]], %got(f1)(${{[0-9]+}})
-; CHECK-DAG: lwc1 $f[[REG_F2:[0-9]+]], 0($[[REG_F2_GOT]])
-; CHECK-DAG: lwc1 $f[[REG_F1:[0-9]+]], 0($[[REG_F1_GOT]])
-; CHECK-DAG: addiu $[[REG_ZERO:[0-9]+]], $zero, 0
-; CHECK-DAG: addiu $[[REG_ONE:[0-9]+]], $zero, 1
-; CHECK: c.eq.s $f[[REG_F1]], $f[[REG_F2]]
-; CHECK: movf $[[REG_ZERO]], $[[REG_ONE]], $fcc0
- %conv = zext i1 %cmp to i32
- store i32 %conv, i32* @b1, align 4
- ret void
-}
-
-; Function Attrs: nounwind
-define void @flt1() {
-entry:
- %0 = load float, float* @f1, align 4
- %1 = load float, float* @f2, align 4
- %cmp = fcmp olt float %0, %1
-; CHECK-LABEL: flt1:
-; CHECK-DAG: lw $[[REG_F2_GOT:[0-9]+]], %got(f2)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_F1_GOT:[0-9]+]], %got(f1)(${{[0-9]+}})
-; CHECK-DAG: lwc1 $f[[REG_F2:[0-9]+]], 0($[[REG_F2_GOT]])
-; CHECK-DAG: lwc1 $f[[REG_F1:[0-9]+]], 0($[[REG_F1_GOT]])
-; CHECK-DAG: addiu $[[REG_ZERO:[0-9]+]], $zero, 0
-; CHECK-DAG: addiu $[[REG_ONE:[0-9]+]], $zero, 1
-; CHECK: c.olt.s $f[[REG_F1]], $f[[REG_F2]]
-; CHECK: movt $[[REG_ZERO]], $[[REG_ONE]], $fcc0
-
- %conv = zext i1 %cmp to i32
- store i32 %conv, i32* @b1, align 4
- ret void
-}
-
-; Function Attrs: nounwind
-define void @fgt1() {
-entry:
- %0 = load float, float* @f1, align 4
- %1 = load float, float* @f2, align 4
- %cmp = fcmp ogt float %0, %1
-; CHECK-LABEL: fgt1:
-; CHECK-DAG: lw $[[REG_F2_GOT:[0-9]+]], %got(f2)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_F1_GOT:[0-9]+]], %got(f1)(${{[0-9]+}})
-; CHECK-DAG: lwc1 $f[[REG_F2:[0-9]+]], 0($[[REG_F2_GOT]])
-; CHECK-DAG: lwc1 $f[[REG_F1:[0-9]+]], 0($[[REG_F1_GOT]])
-; CHECK-DAG: addiu $[[REG_ZERO:[0-9]+]], $zero, 0
-; CHECK-DAG: addiu $[[REG_ONE:[0-9]+]], $zero, 1
-; CHECK: c.ule.s $f[[REG_F1]], $f[[REG_F2]]
-; CHECK: movf $[[REG_ZERO]], $[[REG_ONE]], $fcc0
- %conv = zext i1 %cmp to i32
- store i32 %conv, i32* @b1, align 4
- ret void
-}
-
-; Function Attrs: nounwind
-define void @fle1() {
-entry:
- %0 = load float, float* @f1, align 4
- %1 = load float, float* @f2, align 4
- %cmp = fcmp ole float %0, %1
-; CHECK-LABEL: fle1:
-; CHECK-DAG: lw $[[REG_F2_GOT:[0-9]+]], %got(f2)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_F1_GOT:[0-9]+]], %got(f1)(${{[0-9]+}})
-; CHECK-DAG: lwc1 $f[[REG_F2:[0-9]+]], 0($[[REG_F2_GOT]])
-; CHECK-DAG: lwc1 $f[[REG_F1:[0-9]+]], 0($[[REG_F1_GOT]])
-; CHECK-DAG: addiu $[[REG_ZERO:[0-9]+]], $zero, 0
-; CHECK-DAG: addiu $[[REG_ONE:[0-9]+]], $zero, 1
-; CHECK: c.ole.s $f[[REG_F1]], $f[[REG_F2]]
-; CHECK: movt $[[REG_ZERO]], $[[REG_ONE]], $fcc0
- %conv = zext i1 %cmp to i32
- store i32 %conv, i32* @b1, align 4
- ret void
-}
-
-; Function Attrs: nounwind
-define void @fge1() {
-entry:
- %0 = load float, float* @f1, align 4
- %1 = load float, float* @f2, align 4
- %cmp = fcmp oge float %0, %1
-; CHECK-LABEL: fge1:
-; CHECK-DAG: lw $[[REG_F2_GOT:[0-9]+]], %got(f2)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_F1_GOT:[0-9]+]], %got(f1)(${{[0-9]+}})
-; CHECK-DAG: lwc1 $f[[REG_F2:[0-9]+]], 0($[[REG_F2_GOT]])
-; CHECK-DAG: lwc1 $f[[REG_F1:[0-9]+]], 0($[[REG_F1_GOT]])
-; CHECK-DAG: addiu $[[REG_ZERO:[0-9]+]], $zero, 0
-; CHECK-DAG: addiu $[[REG_ONE:[0-9]+]], $zero, 1
-; CHECK: c.ult.s $f[[REG_F1]], $f[[REG_F2]]
-; CHECK: movf $[[REG_ZERO]], $[[REG_ONE]], $fcc0
- %conv = zext i1 %cmp to i32
- store i32 %conv, i32* @b1, align 4
- ret void
-}
-
-; Function Attrs: nounwind
-define void @deq1() {
-entry:
- %0 = load double, double* @d1, align 8
- %1 = load double, double* @d2, align 8
- %cmp = fcmp oeq double %0, %1
-; CHECK-LABEL: deq1:
-; CHECK-DAG: lw $[[REG_D2_GOT:[0-9]+]], %got(d2)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_D1_GOT:[0-9]+]], %got(d1)(${{[0-9]+}})
-; CHECK-DAG: ldc1 $f[[REG_D2:[0-9]+]], 0($[[REG_D2_GOT]])
-; CHECK-DAG: ldc1 $f[[REG_D1:[0-9]+]], 0($[[REG_D1_GOT]])
-; CHECK-DAG: addiu $[[REG_ZERO:[0-9]+]], $zero, 0
-; CHECK-DAG: addiu $[[REG_ONE:[0-9]+]], $zero, 1
-; CHECK: c.eq.d $f[[REG_D1]], $f[[REG_D2]]
-; CHECK: movt $[[REG_ZERO]], $[[REG_ONE]], $fcc0
- %conv = zext i1 %cmp to i32
- store i32 %conv, i32* @b1, align 4
- ret void
-}
-
-; Function Attrs: nounwind
-define void @dne1() {
-entry:
- %0 = load double, double* @d1, align 8
- %1 = load double, double* @d2, align 8
- %cmp = fcmp une double %0, %1
-; CHECK-LABEL: dne1:
-; CHECK-DAG: lw $[[REG_D2_GOT:[0-9]+]], %got(d2)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_D1_GOT:[0-9]+]], %got(d1)(${{[0-9]+}})
-; CHECK-DAG: ldc1 $f[[REG_D2:[0-9]+]], 0($[[REG_D2_GOT]])
-; CHECK-DAG: ldc1 $f[[REG_D1:[0-9]+]], 0($[[REG_D1_GOT]])
-; CHECK-DAG: addiu $[[REG_ZERO:[0-9]+]], $zero, 0
-; CHECK-DAG: addiu $[[REG_ONE:[0-9]+]], $zero, 1
-; CHECK: c.eq.d $f[[REG_D1]], $f[[REG_D2]]
-; CHECK: movf $[[REG_ZERO]], $[[REG_ONE]], $fcc0
- %conv = zext i1 %cmp to i32
- store i32 %conv, i32* @b1, align 4
- ret void
-}
-
-; Function Attrs: nounwind
-define void @dlt1() {
-entry:
- %0 = load double, double* @d1, align 8
- %1 = load double, double* @d2, align 8
- %cmp = fcmp olt double %0, %1
-; CHECK-LABEL: dlt1:
-; CHECK-DAG: lw $[[REG_D2_GOT:[0-9]+]], %got(d2)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_D1_GOT:[0-9]+]], %got(d1)(${{[0-9]+}})
-; CHECK-DAG: ldc1 $f[[REG_D2:[0-9]+]], 0($[[REG_D2_GOT]])
-; CHECK-DAG: ldc1 $f[[REG_D1:[0-9]+]], 0($[[REG_D1_GOT]])
-; CHECK-DAG: addiu $[[REG_ZERO:[0-9]+]], $zero, 0
-; CHECK-DAG: addiu $[[REG_ONE:[0-9]+]], $zero, 1
-; CHECK: c.olt.d $f[[REG_D1]], $f[[REG_D2]]
-; CHECK: movt $[[REG_ZERO]], $[[REG_ONE]], $fcc0
- %conv = zext i1 %cmp to i32
- store i32 %conv, i32* @b1, align 4
- ret void
-}
-
-; Function Attrs: nounwind
-define void @dgt1() {
-entry:
- %0 = load double, double* @d1, align 8
- %1 = load double, double* @d2, align 8
- %cmp = fcmp ogt double %0, %1
-; CHECK-LABEL: dgt1:
-; CHECK-DAG: lw $[[REG_D2_GOT:[0-9]+]], %got(d2)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_D1_GOT:[0-9]+]], %got(d1)(${{[0-9]+}})
-; CHECK-DAG: ldc1 $f[[REG_D2:[0-9]+]], 0($[[REG_D2_GOT]])
-; CHECK-DAG: ldc1 $f[[REG_D1:[0-9]+]], 0($[[REG_D1_GOT]])
-; CHECK-DAG: addiu $[[REG_ZERO:[0-9]+]], $zero, 0
-; CHECK-DAG: addiu $[[REG_ONE:[0-9]+]], $zero, 1
-; CHECK: c.ule.d $f[[REG_D1]], $f[[REG_D2]]
-; CHECK: movf $[[REG_ZERO]], $[[REG_ONE]], $fcc0
- %conv = zext i1 %cmp to i32
- store i32 %conv, i32* @b1, align 4
- ret void
-}
-
-; Function Attrs: nounwind
-define void @dle1() {
-entry:
- %0 = load double, double* @d1, align 8
- %1 = load double, double* @d2, align 8
- %cmp = fcmp ole double %0, %1
-; CHECK-LABEL: dle1:
-; CHECK-DAG: lw $[[REG_D2_GOT:[0-9]+]], %got(d2)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_D1_GOT:[0-9]+]], %got(d1)(${{[0-9]+}})
-; CHECK-DAG: ldc1 $f[[REG_D2:[0-9]+]], 0($[[REG_D2_GOT]])
-; CHECK-DAG: ldc1 $f[[REG_D1:[0-9]+]], 0($[[REG_D1_GOT]])
-; CHECK-DAG: addiu $[[REG_ZERO:[0-9]+]], $zero, 0
-; CHECK-DAG: addiu $[[REG_ONE:[0-9]+]], $zero, 1
-; CHECK: c.ole.d $f[[REG_D1]], $f[[REG_D2]]
-; CHECK: movt $[[REG_ZERO]], $[[REG_ONE]], $fcc0
- %conv = zext i1 %cmp to i32
- store i32 %conv, i32* @b1, align 4
- ret void
-}
-
-; Function Attrs: nounwind
-define void @dge1() {
-entry:
- %0 = load double, double* @d1, align 8
- %1 = load double, double* @d2, align 8
- %cmp = fcmp oge double %0, %1
-; CHECK-LABEL: dge1:
-; CHECK-DAG: lw $[[REG_D2_GOT:[0-9]+]], %got(d2)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_D1_GOT:[0-9]+]], %got(d1)(${{[0-9]+}})
-; CHECK-DAG: ldc1 $f[[REG_D2:[0-9]+]], 0($[[REG_D2_GOT]])
-; CHECK-DAG: ldc1 $f[[REG_D1:[0-9]+]], 0($[[REG_D1_GOT]])
-; CHECK-DAG: addiu $[[REG_ZERO:[0-9]+]], $zero, 0
-; CHECK-DAG: addiu $[[REG_ONE:[0-9]+]], $zero, 1
-; CHECK: c.ult.d $f[[REG_D1]], $f[[REG_D2]]
-; CHECK: movf $[[REG_ZERO]], $[[REG_ONE]], $fcc0
- %conv = zext i1 %cmp to i32
- store i32 %conv, i32* @b1, align 4
- ret void
-}
-
-
diff --git a/test/CodeGen/Mips/Fast-ISel/fpext.ll b/test/CodeGen/Mips/Fast-ISel/fpext.ll
deleted file mode 100644
index d9637af92635..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/fpext.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32r2 \
-; RUN: < %s | FileCheck %s
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32 \
-; RUN: < %s | FileCheck %s
-
-@f = global float 0x40147E6B80000000, align 4
-@d_f = common global double 0.000000e+00, align 8
-@.str = private unnamed_addr constant [6 x i8] c"%f \0A\00", align 1
-
-; Function Attrs: nounwind
-define void @dv() #0 {
-entry:
- %0 = load float, float* @f, align 4
- %conv = fpext float %0 to double
-; CHECK: cvt.d.s $f{{[0-9]+}}, $f{{[0-9]+}}
- store double %conv, double* @d_f, align 8
- ret void
-}
-
-
-attributes #1 = { nounwind }
diff --git a/test/CodeGen/Mips/Fast-ISel/fpintconv.ll b/test/CodeGen/Mips/Fast-ISel/fpintconv.ll
deleted file mode 100644
index 9a9570f21b3a..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/fpintconv.ll
+++ /dev/null
@@ -1,35 +0,0 @@
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32r2 \
-; RUN: < %s | FileCheck %s
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32 \
-; RUN: < %s | FileCheck %s
-
-
-@f = global float 0x40D6E83280000000, align 4
-@d = global double 0x4132D68780000000, align 8
-@i_f = common global i32 0, align 4
-@i_d = common global i32 0, align 4
-@.str = private unnamed_addr constant [5 x i8] c"%i \0A\00", align 1
-
-; Function Attrs: nounwind
-define void @ifv() {
-entry:
-; CHECK-LABEL: .ent ifv
- %0 = load float, float* @f, align 4
- %conv = fptosi float %0 to i32
-; CHECK: trunc.w.s $f[[REG:[0-9]+]], $f{{[0-9]+}}
-; CHECK: mfc1 ${{[0-9]+}}, $f[[REG]]
- store i32 %conv, i32* @i_f, align 4
- ret void
-}
-
-; Function Attrs: nounwind
-define void @idv() {
-entry:
-; CHECK-LABEL: .ent idv
- %0 = load double, double* @d, align 8
- %conv = fptosi double %0 to i32
-; CHECK: trunc.w.d $f[[REG:[0-9]+]], $f{{[0-9]+}}
-; CHECK: mfc1 ${{[0-9]+}}, $f[[REG]]
- store i32 %conv, i32* @i_d, align 4
- ret void
-}
diff --git a/test/CodeGen/Mips/Fast-ISel/fptrunc.ll b/test/CodeGen/Mips/Fast-ISel/fptrunc.ll
deleted file mode 100644
index 61828737aabc..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/fptrunc.ll
+++ /dev/null
@@ -1,20 +0,0 @@
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32r2 \
-; RUN: < %s | FileCheck %s
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32 \
-; RUN: < %s | FileCheck %s
-
-@d = global double 0x40147E6B74DF0446, align 8
-@f = common global float 0.000000e+00, align 4
-@.str = private unnamed_addr constant [6 x i8] c"%f \0A\00", align 1
-
-; Function Attrs: nounwind
-define void @fv() #0 {
-entry:
- %0 = load double, double* @d, align 8
- %conv = fptrunc double %0 to float
-; CHECK: cvt.s.d $f{{[0-9]+}}, $f{{[0-9]+}}
- store float %conv, float* @f, align 4
- ret void
-}
-
-attributes #1 = { nounwind }
diff --git a/test/CodeGen/Mips/Fast-ISel/icmpa.ll b/test/CodeGen/Mips/Fast-ISel/icmpa.ll
deleted file mode 100644
index cc19beafd38d..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/icmpa.ll
+++ /dev/null
@@ -1,210 +0,0 @@
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32r2 \
-; RUN: < %s | FileCheck %s
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32 \
-; RUN: < %s | FileCheck %s
-
-@c = global i32 4, align 4
-@d = global i32 9, align 4
-@uc = global i32 4, align 4
-@ud = global i32 9, align 4
-@b1 = common global i32 0, align 4
-
-; Function Attrs: nounwind
-define void @eq() {
-entry:
-; CHECK-LABEL: .ent eq
-
- %0 = load i32, i32* @c, align 4
- %1 = load i32, i32* @d, align 4
- %cmp = icmp eq i32 %0, %1
- %conv = zext i1 %cmp to i32
-; CHECK-DAG: lw $[[REG_D_GOT:[0-9+]]], %got(d)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_C_GOT:[0-9+]]], %got(c)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_D:[0-9]+]], 0($[[REG_D_GOT]])
-; CHECK-DAG: lw $[[REG_C:[0-9]+]], 0($[[REG_C_GOT]])
-; CHECK: xor $[[REG1:[0-9]+]], $[[REG_C]], $[[REG_D]]
-; CHECK: sltiu $[[REG2:[0-9]+]], $[[REG1]], 1
-; FIXME: This instruction is redundant. The sltiu can only produce 0 and 1.
-; CHECK: andi ${{[0-9]+}}, $[[REG2]], 1
-
- store i32 %conv, i32* @b1, align 4
- ret void
-}
-
-; Function Attrs: nounwind
-define void @ne() {
-entry:
-; CHECK-LABEL: .ent ne
- %0 = load i32, i32* @c, align 4
- %1 = load i32, i32* @d, align 4
- %cmp = icmp ne i32 %0, %1
- %conv = zext i1 %cmp to i32
-; CHECK-DAG: lw $[[REG_D_GOT:[0-9+]]], %got(d)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_C_GOT:[0-9+]]], %got(c)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_D:[0-9]+]], 0($[[REG_D_GOT]])
-; CHECK-DAG: lw $[[REG_C:[0-9]+]], 0($[[REG_C_GOT]])
-; CHECK: xor $[[REG1:[0-9]+]], $[[REG_C]], $[[REG_D]]
-; CHECK: sltu $[[REG2:[0-9]+]], $zero, $[[REG1]]
-; FIXME: This instruction is redundant. The sltu can only produce 0 and 1.
-; CHECK: andi ${{[0-9]+}}, $[[REG2]], 1
-
- store i32 %conv, i32* @b1, align 4
- ret void
-}
-
-; Function Attrs: nounwind
-define void @ugt() {
-entry:
-; CHECK-LABEL: .ent ugt
- %0 = load i32, i32* @uc, align 4
- %1 = load i32, i32* @ud, align 4
- %cmp = icmp ugt i32 %0, %1
- %conv = zext i1 %cmp to i32
-; CHECK-DAG: lw $[[REG_UD_GOT:[0-9+]]], %got(ud)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_UC_GOT:[0-9+]]], %got(uc)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_UD:[0-9]+]], 0($[[REG_UD_GOT]])
-; CHECK-DAG: lw $[[REG_UC:[0-9]+]], 0($[[REG_UC_GOT]])
-; CHECK: sltu $[[REG1:[0-9]+]], $[[REG_UD]], $[[REG_UC]]
-; FIXME: This instruction is redundant. The sltu can only produce 0 and 1.
-; CHECK: andi ${{[0-9]+}}, $[[REG1]], 1
-
- store i32 %conv, i32* @b1, align 4
- ret void
-}
-
-; Function Attrs: nounwind
-define void @ult() {
-entry:
-; CHECK-LABEL: .ent ult
- %0 = load i32, i32* @uc, align 4
- %1 = load i32, i32* @ud, align 4
- %cmp = icmp ult i32 %0, %1
- %conv = zext i1 %cmp to i32
-; CHECK-DAG: lw $[[REG_UD_GOT:[0-9+]]], %got(ud)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_UC_GOT:[0-9+]]], %got(uc)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_UD:[0-9]+]], 0($[[REG_UD_GOT]])
-; CHECK-DAG: lw $[[REG_UC:[0-9]+]], 0($[[REG_UC_GOT]])
-; CHECK: sltu $[[REG1:[0-9]+]], $[[REG_UC]], $[[REG_UD]]
-; FIXME: This instruction is redundant. The sltu can only produce 0 and 1.
-; CHECK: andi ${{[0-9]+}}, $[[REG1]], 1
- store i32 %conv, i32* @b1, align 4
- ret void
-}
-
-; Function Attrs: nounwind
-define void @uge() {
-entry:
-; CHECK-LABEL: .ent uge
- %0 = load i32, i32* @uc, align 4
- %1 = load i32, i32* @ud, align 4
- %cmp = icmp uge i32 %0, %1
- %conv = zext i1 %cmp to i32
-; CHECK-DAG: lw $[[REG_UD_GOT:[0-9+]]], %got(ud)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_UC_GOT:[0-9+]]], %got(uc)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_UD:[0-9]+]], 0($[[REG_UD_GOT]])
-; CHECK-DAG: lw $[[REG_UC:[0-9]+]], 0($[[REG_UC_GOT]])
-; CHECK: sltu $[[REG1:[0-9]+]], $[[REG_UC]], $[[REG_UD]]
-; CHECK: xori $[[REG2:[0-9]+]], $[[REG1]], 1
-; FIXME: This instruction is redundant. The sltu can only produce 0 and 1.
-; CHECK: andi ${{[0-9]+}}, $[[REG2]], 1
- store i32 %conv, i32* @b1, align 4
- ret void
-}
-
-; Function Attrs: nounwind
-define void @ule() {
-entry:
-; CHECK-LABEL: .ent ule
- %0 = load i32, i32* @uc, align 4
- %1 = load i32, i32* @ud, align 4
- %cmp = icmp ule i32 %0, %1
- %conv = zext i1 %cmp to i32
-; CHECK-DAG: lw $[[REG_UD_GOT:[0-9+]]], %got(ud)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_UC_GOT:[0-9+]]], %got(uc)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_UD:[0-9]+]], 0($[[REG_UD_GOT]])
-; CHECK-DAG: lw $[[REG_UC:[0-9]+]], 0($[[REG_UC_GOT]])
-; CHECK: sltu $[[REG1:[0-9]+]], $[[REG_UD]], $[[REG_UC]]
-; CHECK: xori $[[REG2:[0-9]+]], $[[REG1]], 1
-; FIXME: This instruction is redundant. The sltu can only produce 0 and 1.
-; CHECK: andi ${{[0-9]+}}, $[[REG2]], 1
- store i32 %conv, i32* @b1, align 4
- ret void
-}
-
-; Function Attrs: nounwind
-define void @sgt() {
-entry:
-; CHECK-LABEL: .ent sgt
- %0 = load i32, i32* @c, align 4
- %1 = load i32, i32* @d, align 4
- %cmp = icmp sgt i32 %0, %1
- %conv = zext i1 %cmp to i32
-; CHECK-DAG: lw $[[REG_D_GOT:[0-9+]]], %got(d)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_C_GOT:[0-9+]]], %got(c)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_D:[0-9]+]], 0($[[REG_D_GOT]])
-; CHECK-DAG: lw $[[REG_C:[0-9]+]], 0($[[REG_C_GOT]])
-; CHECK: slt $[[REG1:[0-9]+]], $[[REG_D]], $[[REG_C]]
-; FIXME: This instruction is redundant. The slt can only produce 0 and 1.
-; CHECK: andi ${{[0-9]+}}, $[[REG1]], 1
- store i32 %conv, i32* @b1, align 4
- ret void
-}
-
-; Function Attrs: nounwind
-define void @slt() {
-entry:
-; CHECK-LABEL: .ent slt
- %0 = load i32, i32* @c, align 4
- %1 = load i32, i32* @d, align 4
- %cmp = icmp slt i32 %0, %1
- %conv = zext i1 %cmp to i32
-; CHECK-DAG: lw $[[REG_D_GOT:[0-9+]]], %got(d)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_C_GOT:[0-9+]]], %got(c)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_D:[0-9]+]], 0($[[REG_D_GOT]])
-; CHECK-DAG: lw $[[REG_C:[0-9]+]], 0($[[REG_C_GOT]])
-; CHECK: slt $[[REG1:[0-9]+]], $[[REG_C]], $[[REG_D]]
-; FIXME: This instruction is redundant. The slt can only produce 0 and 1.
-; CHECK: andi ${{[0-9]+}}, $[[REG1]], 1
- store i32 %conv, i32* @b1, align 4
- ret void
-}
-
-; Function Attrs: nounwind
-define void @sge() {
-entry:
-; CHECK-LABEL: .ent sge
- %0 = load i32, i32* @c, align 4
- %1 = load i32, i32* @d, align 4
- %cmp = icmp sge i32 %0, %1
- %conv = zext i1 %cmp to i32
- store i32 %conv, i32* @b1, align 4
-; CHECK-DAG: lw $[[REG_D_GOT:[0-9+]]], %got(d)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_C_GOT:[0-9+]]], %got(c)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_D:[0-9]+]], 0($[[REG_D_GOT]])
-; CHECK-DAG: lw $[[REG_C:[0-9]+]], 0($[[REG_C_GOT]])
-; CHECK: slt $[[REG1:[0-9]+]], $[[REG_C]], $[[REG_D]]
-; CHECK: xori $[[REG2:[0-9]+]], $[[REG1]], 1
-; FIXME: This instruction is redundant. The slt can only produce 0 and 1.
-; CHECK: andi ${{[0-9]+}}, $[[REG2]], 1
- ret void
-}
-
-; Function Attrs: nounwind
-define void @sle() {
-entry:
-; CHECK-LABEL: .ent sle
- %0 = load i32, i32* @c, align 4
- %1 = load i32, i32* @d, align 4
- %cmp = icmp sle i32 %0, %1
- %conv = zext i1 %cmp to i32
-; CHECK-DAG: lw $[[REG_D_GOT:[0-9+]]], %got(d)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_C_GOT:[0-9+]]], %got(c)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_D:[0-9]+]], 0($[[REG_D_GOT]])
-; CHECK-DAG: lw $[[REG_C:[0-9]+]], 0($[[REG_C_GOT]])
-; CHECK: slt $[[REG1:[0-9]+]], $[[REG_D]], $[[REG_C]]
-; CHECK: xori $[[REG2:[0-9]+]], $[[REG1]], 1
-; FIXME: This instruction is redundant. The slt can only produce 0 and 1.
-; CHECK: andi ${{[0-9]+}}, $[[REG2]], 1
- store i32 %conv, i32* @b1, align 4
- ret void
-}
diff --git a/test/CodeGen/Mips/Fast-ISel/loadstore2.ll b/test/CodeGen/Mips/Fast-ISel/loadstore2.ll
deleted file mode 100644
index dc7be744ddc4..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/loadstore2.ll
+++ /dev/null
@@ -1,85 +0,0 @@
-; ModuleID = 'loadstore2.c'
-target datalayout = "E-m:m-p:32:32-i8:8:32-i16:16:32-i64:64-n32-S64"
-target triple = "mips--linux-gnu"
-
-@c2 = common global i8 0, align 1
-@c1 = common global i8 0, align 1
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32r2 \
-; RUN: < %s | FileCheck %s
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32 \
-; RUN: < %s | FileCheck %s
-
-@s2 = common global i16 0, align 2
-@s1 = common global i16 0, align 2
-@i2 = common global i32 0, align 4
-@i1 = common global i32 0, align 4
-@f2 = common global float 0.000000e+00, align 4
-@f1 = common global float 0.000000e+00, align 4
-@d2 = common global double 0.000000e+00, align 8
-@d1 = common global double 0.000000e+00, align 8
-
-; Function Attrs: nounwind
-define void @cfoo() #0 {
-entry:
- %0 = load i8, i8* @c2, align 1
- store i8 %0, i8* @c1, align 1
-; CHECK-LABEL: cfoo:
-; CHECK: lbu $[[REGc:[0-9]+]], 0(${{[0-9]+}})
-; CHECK: sb $[[REGc]], 0(${{[0-9]+}})
-
-
- ret void
-}
-
-; Function Attrs: nounwind
-define void @sfoo() #0 {
-entry:
- %0 = load i16, i16* @s2, align 2
- store i16 %0, i16* @s1, align 2
-; CHECK-LABEL: sfoo:
-; CHECK: lhu $[[REGs:[0-9]+]], 0(${{[0-9]+}})
-; CHECK: sh $[[REGs]], 0(${{[0-9]+}})
-
- ret void
-}
-
-; Function Attrs: nounwind
-define void @ifoo() #0 {
-entry:
- %0 = load i32, i32* @i2, align 4
- store i32 %0, i32* @i1, align 4
-; CHECK-LABEL: ifoo:
-; CHECK: lw $[[REGi:[0-9]+]], 0(${{[0-9]+}})
-; CHECK: sw $[[REGi]], 0(${{[0-9]+}})
-
- ret void
-}
-
-; Function Attrs: nounwind
-define void @ffoo() #0 {
-entry:
- %0 = load float, float* @f2, align 4
- store float %0, float* @f1, align 4
-; CHECK-LABEL: ffoo:
-; CHECK: lwc1 $f[[REGf:[0-9]+]], 0(${{[0-9]+}})
-; CHECK: swc1 $f[[REGf]], 0(${{[0-9]+}})
-
-
- ret void
-}
-
-; Function Attrs: nounwind
-define void @dfoo() #0 {
-entry:
- %0 = load double, double* @d2, align 8
- store double %0, double* @d1, align 8
-; CHECK-LABEL: dfoo:
-; CHECK: ldc1 $f[[REGd:[0-9]+]], 0(${{[0-9]+}})
-; CHECK: sdc1 $f[[REGd]], 0(${{[0-9]+}})
-; CHECK: .end dfoo
- ret void
-}
-
-attributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
-
-
diff --git a/test/CodeGen/Mips/Fast-ISel/loadstoreconv.ll b/test/CodeGen/Mips/Fast-ISel/loadstoreconv.ll
deleted file mode 100644
index 7e52fb40842a..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/loadstoreconv.ll
+++ /dev/null
@@ -1,179 +0,0 @@
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32r2 \
-; RUN: < %s | FileCheck %s
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32 \
-; RUN: < %s | FileCheck %s
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32r2 \
-; RUN: < %s | FileCheck %s -check-prefix=mips32r2
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32 \
-; RUN: < %s | FileCheck %s -check-prefix=mips32
-
-@b2 = global i8 0, align 1
-@b1 = global i8 1, align 1
-@uc1 = global i8 0, align 1
-@uc2 = global i8 -1, align 1
-@sc1 = global i8 -128, align 1
-@sc2 = global i8 127, align 1
-@ss1 = global i16 -32768, align 2
-@ss2 = global i16 32767, align 2
-@us1 = global i16 0, align 2
-@us2 = global i16 -1, align 2
-@ssi = global i16 0, align 2
-@ssj = global i16 0, align 2
-@i = global i32 0, align 4
-@j = global i32 0, align 4
-@.str = private unnamed_addr constant [4 x i8] c"%i\0A\00", align 1
-@.str1 = private unnamed_addr constant [7 x i8] c"%i %i\0A\00", align 1
-
-; Function Attrs: nounwind
-define void @_Z3b_iv() {
-entry:
-; CHECK-LABEL: .ent _Z3b_iv
- %0 = load i8, i8* @b1, align 1
- %tobool = trunc i8 %0 to i1
- %frombool = zext i1 %tobool to i8
- store i8 %frombool, i8* @b2, align 1
- %1 = load i8, i8* @b2, align 1
- %tobool1 = trunc i8 %1 to i1
- %conv = zext i1 %tobool1 to i32
- store i32 %conv, i32* @i, align 4
-; CHECK: lbu $[[REG1:[0-9]+]], 0(${{[0-9]+}})
-; CHECK: andi $[[REG2:[0-9]+]], $[[REG1]], 1
-; CHECK: sb $[[REG2]], 0(${{[0-9]+}})
-
-
-
- ret void
-; CHECK: .end _Z3b_iv
-}
-
-; Function Attrs: nounwind
-define void @_Z4uc_iv() {
-entry:
-; CHECK-LABEL: .ent _Z4uc_iv
-
- %0 = load i8, i8* @uc1, align 1
- %conv = zext i8 %0 to i32
- store i32 %conv, i32* @i, align 4
- %1 = load i8, i8* @uc2, align 1
- %conv1 = zext i8 %1 to i32
-; CHECK: lbu $[[REG1:[0-9]+]], 0(${{[0-9]+}})
-; CHECK: andi ${{[0-9]+}}, $[[REG1]], 255
-
- store i32 %conv1, i32* @j, align 4
- ret void
-; CHECK: .end _Z4uc_iv
-
-}
-
-; Function Attrs: nounwind
-define void @_Z4sc_iv() {
-entry:
-; mips32r2-LABEL: .ent _Z4sc_iv
-; mips32-LABEL: .ent _Z4sc_iv
-
- %0 = load i8, i8* @sc1, align 1
- %conv = sext i8 %0 to i32
- store i32 %conv, i32* @i, align 4
- %1 = load i8, i8* @sc2, align 1
- %conv1 = sext i8 %1 to i32
- store i32 %conv1, i32* @j, align 4
-; mips32r2: lbu $[[REG1:[0-9]+]], 0(${{[0-9]+}})
-; mips32r2: seb ${{[0-9]+}}, $[[REG1]]
-; mips32: lbu $[[REG1:[0-9]+]], 0(${{[0-9]+}})
-; mips32: sll $[[REG2:[0-9]+]], $[[REG1]], 24
-; mips32: sra ${{[0-9]+}}, $[[REG2]], 24
-
- ret void
-; CHECK: .end _Z4sc_iv
-}
-
-; Function Attrs: nounwind
-define void @_Z4us_iv() {
-entry:
-; CHECK-LABEL: .ent _Z4us_iv
- %0 = load i16, i16* @us1, align 2
- %conv = zext i16 %0 to i32
- store i32 %conv, i32* @i, align 4
- %1 = load i16, i16* @us2, align 2
- %conv1 = zext i16 %1 to i32
- store i32 %conv1, i32* @j, align 4
- ret void
-; CHECK: lhu $[[REG1:[0-9]+]], 0(${{[0-9]+}})
-; CHECK: andi ${{[0-9]+}}, $[[REG1]], 65535
-; CHECK: .end _Z4us_iv
-}
-
-; Function Attrs: nounwind
-define void @_Z4ss_iv() {
-entry:
-; mips32r2-LABEL: .ent _Z4ss_iv
-; mips32=LABEL: .ent _Z4ss_iv
-
- %0 = load i16, i16* @ss1, align 2
- %conv = sext i16 %0 to i32
- store i32 %conv, i32* @i, align 4
- %1 = load i16, i16* @ss2, align 2
- %conv1 = sext i16 %1 to i32
- store i32 %conv1, i32* @j, align 4
-; mips32r2: lhu $[[REG1:[0-9]+]], 0(${{[0-9]+}})
-; mips32r2: seh ${{[0-9]+}}, $[[REG1]]
-; mips32: lhu $[[REG1:[0-9]+]], 0(${{[0-9]+}})
-; mips32: sll $[[REG2:[0-9]+]], $[[REG1]], 16
-; mips32: sra ${{[0-9]+}}, $[[REG2]], 16
-
- ret void
-; CHECK: .end _Z4ss_iv
-}
-
-; Function Attrs: nounwind
-define void @_Z4b_ssv() {
-entry:
-; CHECK-LABEL: .ent _Z4b_ssv
- %0 = load i8, i8* @b2, align 1
- %tobool = trunc i8 %0 to i1
- %conv = zext i1 %tobool to i16
- store i16 %conv, i16* @ssi, align 2
- ret void
-; CHECK: lbu $[[REG1:[0-9]+]], 0(${{[0-9]+}})
-; CHECK: andi ${{[0-9]+}}, $[[REG1]], 1
-; CHECK: .end _Z4b_ssv
-}
-
-; Function Attrs: nounwind
-define void @_Z5uc_ssv() {
-entry:
-; CHECK-LABEL: .ent _Z5uc_ssv
- %0 = load i8, i8* @uc1, align 1
- %conv = zext i8 %0 to i16
- store i16 %conv, i16* @ssi, align 2
- %1 = load i8, i8* @uc2, align 1
- %conv1 = zext i8 %1 to i16
-; CHECK: lbu $[[REG1:[0-9]+]], 0(${{[0-9]+}})
-; CHECK: andi ${{[0-9]+}}, $[[REG1]], 255
-
- store i16 %conv1, i16* @ssj, align 2
- ret void
-; CHECK: .end _Z5uc_ssv
-}
-
-; Function Attrs: nounwind
-define void @_Z5sc_ssv() {
-entry:
-; mips32r2-LABEL: .ent _Z5sc_ssv
-; mips32-LABEL: .ent _Z5sc_ssv
- %0 = load i8, i8* @sc1, align 1
- %conv = sext i8 %0 to i16
- store i16 %conv, i16* @ssi, align 2
- %1 = load i8, i8* @sc2, align 1
- %conv1 = sext i8 %1 to i16
- store i16 %conv1, i16* @ssj, align 2
-; mips32r2: lbu $[[REG1:[0-9]+]], 0(${{[0-9]+}})
-; mips32r2: seb ${{[0-9]+}}, $[[REG1]]
-; mips32: lbu $[[REG1:[0-9]+]], 0(${{[0-9]+}})
-; mips32: sll $[[REG2:[0-9]+]], $[[REG1]], 24
-; mips32: sra ${{[0-9]+}}, $[[REG2]], 24
-
- ret void
-; CHECK: .end _Z5sc_ssv
-}
-
diff --git a/test/CodeGen/Mips/Fast-ISel/loadstrconst.ll b/test/CodeGen/Mips/Fast-ISel/loadstrconst.ll
deleted file mode 100644
index 78077f7642f9..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/loadstrconst.ll
+++ /dev/null
@@ -1,21 +0,0 @@
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32r2 \
-; RUN: < %s | FileCheck %s
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32 \
-; RUN: < %s | FileCheck %s
-
-@.str = private unnamed_addr constant [6 x i8] c"hello\00", align 1
-@s = common global i8* null, align 4
-
-; Function Attrs: nounwind
-define void @foo() #0 {
-entry:
- store i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str, i32 0, i32 0), i8** @s, align 4
- ret void
-; CHECK: .ent foo
-; CHECK: lw $[[REG1:[0-9]+]], %got($.str)(${{[0-9]+}})
-; CHECK: addiu ${{[0-9]+}}, $[[REG1]], %lo($.str)
-
-}
-
-attributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
-
diff --git a/test/CodeGen/Mips/Fast-ISel/logopm.ll b/test/CodeGen/Mips/Fast-ISel/logopm.ll
deleted file mode 100644
index 0519c07682ed..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/logopm.ll
+++ /dev/null
@@ -1,606 +0,0 @@
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32r2 < %s | FileCheck %s
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32 < %s | FileCheck %s
-
-@ub1 = common global i8 0, align 1
-@ub2 = common global i8 0, align 1
-@ub3 = common global i8 0, align 1
-@uc1 = common global i8 0, align 1
-@uc2 = common global i8 0, align 1
-@uc3 = common global i8 0, align 1
-@us1 = common global i16 0, align 2
-@us2 = common global i16 0, align 2
-@us3 = common global i16 0, align 2
-@ub = common global i8 0, align 1
-@uc = common global i8 0, align 1
-@us = common global i16 0, align 2
-@.str = private unnamed_addr constant [4 x i8] c"%i\0A\00", align 1
-@ui = common global i32 0, align 4
-@ui1 = common global i32 0, align 4
-@ui2 = common global i32 0, align 4
-@ui3 = common global i32 0, align 4
-
-; Function Attrs: noinline nounwind
-define void @andUb() #0 {
-entry:
- %0 = load i8, i8* @ub1, align 1
- %1 = load i8, i8* @ub2, align 1
- %conv0 = trunc i8 %0 to i1
- %conv1 = trunc i8 %1 to i1
- %and0 = and i1 %conv1, %conv0
- %conv3 = zext i1 %and0 to i8
- store i8 %conv3, i8* @ub, align 1, !tbaa !2
-; CHECK-LABEL: .ent andUb
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[UB_ADDR:[0-9]+]], %got(ub)($[[REG_GP]])
-; CHECK-DAG: lw $[[UB2_ADDR:[0-9]+]], %got(ub2)($[[REG_GP]])
-; CHECK-DAG: lw $[[UB1_ADDR:[0-9]+]], %got(ub1)($[[REG_GP]])
-; CHECK-DAG: lbu $[[UB1:[0-9]+]], 0($[[UB1_ADDR]])
-; CHECK-DAG: lbu $[[UB2:[0-9]+]], 0($[[UB2_ADDR]])
-; CHECK-DAG: and $[[RES1:[0-9]+]], $[[UB2]], $[[UB1]]
-; CHECK: andi $[[RES:[0-9]+]], $[[RES1]], 1
-; CHECK: sb $[[RES]], 0($[[UB_ADDR]])
- ret void
-}
-
-; Function Attrs: noinline nounwind
-define void @andUb0() #0 {
-entry:
- %0 = load i8, i8* @ub1, align 1, !tbaa !2
- %conv = trunc i8 %0 to i1
- %and = and i1 %conv, 0
- %conv1 = zext i1 %and to i8
- store i8 %conv1, i8* @ub, align 1, !tbaa !2
-; CHECK-LABEL: .ent andUb0
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[UB_ADDR:[0-9]+]], %got(ub)($[[REG_GP]])
-; CHECK-DAG: lw $[[UB1_ADDR:[0-9]+]], %got(ub1)($[[REG_GP]])
-; CHECK-DAG: lbu $[[UB1:[0-9]+]], 0($[[UB1_ADDR]])
-; CHECK-DAG: and $[[RES1:[0-9]+]], $[[UB1]], $zero
-; CHECK: andi $[[RES:[0-9]+]], $[[RES1]], 1
-; CHECK: sb $[[RES]], 0($[[UB_ADDR]])
-; CHECK: .end andUb0
- ret void
-}
-
-; Function Attrs: noinline nounwind
-define void @andUb1() #0 {
-; clang uses i8 constants for booleans, so we test with an i8 1.
-entry:
- %x = load i8, i8* @ub1, align 1, !tbaa !2
- %and = and i8 %x, 1
- %conv = trunc i8 %and to i1
- %conv1 = zext i1 %conv to i8
- store i8 %conv1, i8* @ub, align 1, !tbaa !2
-; CHECK-LABEL: .ent andUb1
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[UB_ADDR:[0-9]+]], %got(ub)($[[REG_GP]])
-; CHECK-DAG: addiu $[[CONST:[0-9]+]], $zero, 1
-; CHECK-DAG: lw $[[UB1_ADDR:[0-9]+]], %got(ub1)($[[REG_GP]])
-; CHECK-DAG: lbu $[[UB1:[0-9]+]], 0($[[UB1_ADDR]])
-; CHECK-DAG: and $[[RES1:[0-9]+]], $[[UB1]], $[[CONST]]
-; CHECK: andi $[[RES:[0-9]+]], $[[RES1]], 1
-; CHECK: sb $[[RES]], 0($[[UB_ADDR]])
-; CHECK: .end andUb1
- ret void
-}
-
-; Function Attrs: noinline nounwind
-define void @orUb() #0 {
-entry:
- %0 = load i8, i8* @ub1, align 1
- %1 = load i8, i8* @ub2, align 1
- %conv0 = trunc i8 %0 to i1
- %conv1 = trunc i8 %1 to i1
- %or0 = or i1 %conv1, %conv0
- %conv3 = zext i1 %or0 to i8
- store i8 %conv3, i8* @ub, align 1, !tbaa !2
-; CHECK-LABEL: .ent orUb
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[UB_ADDR:[0-9]+]], %got(ub)($[[REG_GP]])
-; CHECK-DAG: lw $[[UB2_ADDR:[0-9]+]], %got(ub2)($[[REG_GP]])
-; CHECK-DAG: lw $[[UB1_ADDR:[0-9]+]], %got(ub1)($[[REG_GP]])
-; CHECK-DAG: lbu $[[UB1:[0-9]+]], 0($[[UB1_ADDR]])
-; CHECK-DAG: lbu $[[UB2:[0-9]+]], 0($[[UB2_ADDR]])
-; CHECK-DAG: or $[[RES1:[0-9]+]], $[[UB2]], $[[UB1]]
-; CHECK: andi $[[RES:[0-9]+]], $[[RES1]], 1
-; CHECK: sb $[[RES]], 0($[[UB_ADDR]])
- ret void
-}
-
-; Function Attrs: noinline nounwind
-define void @orUb0() #0 {
-entry:
- %0 = load i8, i8* @ub1, align 1, !tbaa !2
- %conv = trunc i8 %0 to i1
- %or = or i1 %conv, 0
- %conv1 = zext i1 %or to i8
- store i8 %conv1, i8* @ub, align 1, !tbaa !2
-; CHECK-LABEL: .ent orUb0
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[UB_ADDR:[0-9]+]], %got(ub)($[[REG_GP]])
-; CHECK-DAG: lw $[[UB1_ADDR:[0-9]+]], %got(ub1)($[[REG_GP]])
-; CHECK-DAG: lbu $[[UB1:[0-9]+]], 0($[[UB1_ADDR]])
-; CHECK: andi $[[RES:[0-9]+]], $[[UB1]], 1
-; CHECK: sb $[[RES]], 0($[[UB_ADDR]])
-; CHECK: .end orUb0
- ret void
-}
-
-; Function Attrs: noinline nounwind
-define void @orUb1() #0 {
-entry:
- %x = load i8, i8* @ub1, align 1, !tbaa !2
- %or = or i8 %x, 1
- %conv = trunc i8 %or to i1
- %conv1 = zext i1 %conv to i8
- store i8 %conv1, i8* @ub, align 1, !tbaa !2
-; CHECK-LABEL: .ent orUb1
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[UB_ADDR:[0-9]+]], %got(ub)($[[REG_GP]])
-; CHECK-DAG: addiu $[[CONST:[0-9]+]], $zero, 1
-; CHECK-DAG: lw $[[UB1_ADDR:[0-9]+]], %got(ub1)($[[REG_GP]])
-; CHECK-DAG: lbu $[[UB1:[0-9]+]], 0($[[UB1_ADDR]])
-; CHECK-DAG: or $[[RES1:[0-9]+]], $[[UB1]], $[[CONST]]
-; CHECK: andi $[[RES:[0-9]+]], $[[RES1]], 1
-; CHECK: sb $[[RES]], 0($[[UB_ADDR]])
-; CHECK: .end orUb1
- ret void
-}
-
-; Function Attrs: noinline nounwind
-define void @xorUb() #0 {
-entry:
- %0 = load i8, i8* @ub1, align 1
- %1 = load i8, i8* @ub2, align 1
- %conv0 = trunc i8 %0 to i1
- %conv1 = trunc i8 %1 to i1
- %xor0 = xor i1 %conv1, %conv0
- %conv3 = zext i1 %xor0 to i8
- store i8 %conv3, i8* @ub, align 1, !tbaa !2
-; CHECK-LABEL: .ent xorUb
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[UB_ADDR:[0-9]+]], %got(ub)($[[REG_GP]])
-; CHECK-DAG: lw $[[UB2_ADDR:[0-9]+]], %got(ub2)($[[REG_GP]])
-; CHECK-DAG: lw $[[UB1_ADDR:[0-9]+]], %got(ub1)($[[REG_GP]])
-; CHECK-DAG: lbu $[[UB1:[0-9]+]], 0($[[UB1_ADDR]])
-; CHECK-DAG: lbu $[[UB2:[0-9]+]], 0($[[UB2_ADDR]])
-; CHECK-DAG: xor $[[RES1:[0-9]+]], $[[UB2]], $[[UB1]]
-; CHECK: andi $[[RES:[0-9]+]], $[[RES1]], 1
-; CHECK: sb $[[RES]], 0($[[UB_ADDR]])
- ret void
-}
-
-; Function Attrs: noinline nounwind
-define void @xorUb0() #0 {
-entry:
- %0 = load i8, i8* @ub1, align 1, !tbaa !2
- %conv = trunc i8 %0 to i1
- %xor = xor i1 %conv, 0
- %conv1 = zext i1 %xor to i8
- store i8 %conv1, i8* @ub, align 1, !tbaa !2
-; CHECK-LABEL: .ent xorUb0
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[UB_ADDR:[0-9]+]], %got(ub)($[[REG_GP]])
-; CHECK-DAG: lw $[[UB1_ADDR:[0-9]+]], %got(ub1)($[[REG_GP]])
-; CHECK-DAG: lbu $[[UB1:[0-9]+]], 0($[[UB1_ADDR]])
-; CHECK-DAG: xor $[[RES1:[0-9]+]], $[[UB1]], $zero
-; CHECK: andi $[[RES:[0-9]+]], $[[RES1]], 1
-; CHECK: sb $[[RES]], 0($[[UB_ADDR]])
-; CHECK: .end xorUb0
- ret void
-}
-
-; Function Attrs: noinline nounwind
-define void @xorUb1() #0 {
-entry:
- %x = load i8, i8* @ub1, align 1, !tbaa !2
- %xor = xor i8 1, %x
- %conv = trunc i8 %xor to i1
- %conv1 = zext i1 %conv to i8
- store i8 %conv1, i8* @ub, align 1, !tbaa !2
-; CHECK-LABEL: .ent xorUb1
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[UB_ADDR:[0-9]+]], %got(ub)($[[REG_GP]])
-; CHECK-DAG: addiu $[[CONST:[0-9]+]], $zero, 1
-; CHECK-DAG: lw $[[UB1_ADDR:[0-9]+]], %got(ub1)($[[REG_GP]])
-; CHECK-DAG: lbu $[[UB1:[0-9]+]], 0($[[UB1_ADDR]])
-; CHECK-DAG: xor $[[RES1:[0-9]+]], $[[UB1]], $[[CONST]]
-; CHECK: andi $[[RES:[0-9]+]], $[[RES1]], 1
-; CHECK: sb $[[RES]], 0($[[UB_ADDR]])
-; CHECK: .end xorUb1
- ret void
-}
-
-; Function Attrs: noinline nounwind
-define void @andUc() #0 {
-entry:
- %0 = load i8, i8* @uc1, align 1, !tbaa !2
- %1 = load i8, i8* @uc2, align 1, !tbaa !2
- %and3 = and i8 %1, %0
- store i8 %and3, i8* @uc, align 1, !tbaa !2
-; CHECK-LABEL: .ent andUc
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[UC_ADDR:[0-9]+]], %got(uc)($[[REG_GP]])
-; CHECK-DAG: lw $[[UC2_ADDR:[0-9]+]], %got(uc2)($[[REG_GP]])
-; CHECK-DAG: lw $[[UC1_ADDR:[0-9]+]], %got(uc1)($[[REG_GP]])
-; CHECK-DAG: lbu $[[UC1:[0-9]+]], 0($[[UC1_ADDR]])
-; CHECK-DAG: lbu $[[UC2:[0-9]+]], 0($[[UC2_ADDR]])
-; CHECK-DAG: and $[[RES:[0-9]+]], $[[UC2]], $[[UB1]]
-; CHECK: sb $[[RES]], 0($[[UC_ADDR]])
- ret void
-}
-
-; Function Attrs: noinline nounwind
-define void @andUc0() #0 {
-entry:
- %0 = load i8, i8* @uc1, align 1, !tbaa !2
- %and = and i8 %0, 67
- store i8 %and, i8* @uc, align 1, !tbaa !2
-; CHECK-LABEL: .ent andUc0
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[UC_ADDR:[0-9]+]], %got(uc)($[[REG_GP]])
-; CHECK-DAG: lw $[[UC1_ADDR:[0-9]+]], %got(uc1)($[[REG_GP]])
-; CHECK-DAG: lbu $[[UC1:[0-9]+]], 0($[[UC1_ADDR]])
-; CHECK-DAG: addiu $[[CONST_67:[0-9]+]], $zero, 67
-; CHECK-DAG: and $[[RES:[0-9]+]], $[[UC1]], $[[CONST_67]]
-; CHECK: sb $[[RES]], 0($[[UC_ADDR]])
-; CHECK: .end andUc0
- ret void
-}
-
-; Function Attrs: noinline nounwind
-define void @andUc1() #0 {
-entry:
- %0 = load i8, i8* @uc1, align 1, !tbaa !2
- %and = and i8 %0, 167
- store i8 %and, i8* @uc, align 1, !tbaa !2
-; CHECK-LABEL: .ent andUc1
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[UC_ADDR:[0-9]+]], %got(uc)($[[REG_GP]])
-; CHECK-DAG: lw $[[UC1_ADDR:[0-9]+]], %got(uc1)($[[REG_GP]])
-; CHECK-DAG: lbu $[[UC1:[0-9]+]], 0($[[UC1_ADDR]])
-; CHECK-DAG: addiu $[[CONST_167:[0-9]+]], $zero, 167
-; CHECK-DAG: and $[[RES:[0-9]+]], $[[UC1]], $[[CONST_167]]
-; CHECK: sb $[[RES]], 0($[[UC_ADDR]])
-; CHECK: .end andUc1
- ret void
-}
-
-; Function Attrs: noinline nounwind
-define void @orUc() #0 {
-entry:
- %0 = load i8, i8* @uc1, align 1, !tbaa !2
- %1 = load i8, i8* @uc2, align 1, !tbaa !2
- %or3 = or i8 %1, %0
- store i8 %or3, i8* @uc, align 1, !tbaa !2
-; CHECK-LABEL: .ent orUc
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[UC_ADDR:[0-9]+]], %got(uc)($[[REG_GP]])
-; CHECK-DAG: lw $[[UC2_ADDR:[0-9]+]], %got(uc2)($[[REG_GP]])
-; CHECK-DAG: lw $[[UC1_ADDR:[0-9]+]], %got(uc1)($[[REG_GP]])
-; CHECK-DAG: lbu $[[UC1:[0-9]+]], 0($[[UC1_ADDR]])
-; CHECK-DAG: lbu $[[UC2:[0-9]+]], 0($[[UC2_ADDR]])
-; CHECK-DAG: or $[[RES:[0-9]+]], $[[UC2]], $[[UC1]]
-; CHECK: sb $[[RES]], 0($[[UC_ADDR]])
-; CHECK: .end orUc
- ret void
-}
-
-; Function Attrs: noinline nounwind
-define void @orUc0() #0 {
-entry:
- %0 = load i8, i8* @uc1, align 1, !tbaa !2
- %or = or i8 %0, 69
- store i8 %or, i8* @uc, align 1, !tbaa !2
-; CHECK-LABEL: .ent orUc0
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[UC_ADDR:[0-9]+]], %got(uc)($[[REG_GP]])
-; CHECK-DAG: lw $[[UC1_ADDR:[0-9]+]], %got(uc1)($[[REG_GP]])
-; CHECK-DAG: lbu $[[UC1:[0-9]+]], 0($[[UC1_ADDR]])
-; CHECK-DAG: addiu $[[CONST_69:[0-9]+]], $zero, 69
-; CHECK-DAG: or $[[RES:[0-9]+]], $[[UC1]], $[[CONST_69]]
-; CHECK: sb $[[RES]], 0($[[UC_ADDR]])
-; CHECK: .end orUc0
- ret void
-}
-
-; Function Attrs: noinline nounwind
-define void @orUc1() #0 {
-entry:
- %0 = load i8, i8* @uc1, align 1, !tbaa !2
- %or = or i8 %0, 238
- store i8 %or, i8* @uc, align 1, !tbaa !2
-; CHECK-LABEL: .ent orUc1
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[UC_ADDR:[0-9]+]], %got(uc)($[[REG_GP]])
-; CHECK-DAG: lw $[[UC1_ADDR:[0-9]+]], %got(uc1)($[[REG_GP]])
-; CHECK-DAG: lbu $[[UC1:[0-9]+]], 0($[[UC1_ADDR]])
-; CHECK-DAG: addiu $[[CONST_238:[0-9]+]], $zero, 238
-; CHECK-DAG: or $[[RES:[0-9]+]], $[[UC1]], $[[CONST_238]]
-; CHECK: sb $[[RES]], 0($[[UC_ADDR]])
-; CHECK: .end orUc1
- ret void
-}
-
-; Function Attrs: noinline nounwind
-define void @xorUc() #0 {
-entry:
- %0 = load i8, i8* @uc1, align 1, !tbaa !2
- %1 = load i8, i8* @uc2, align 1, !tbaa !2
- %xor3 = xor i8 %1, %0
- store i8 %xor3, i8* @uc, align 1, !tbaa !2
-; CHECK-LABEL: .ent xorUc
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[UC_ADDR:[0-9]+]], %got(uc)($[[REG_GP]])
-; CHECK-DAG: lw $[[UC2_ADDR:[0-9]+]], %got(uc2)($[[REG_GP]])
-; CHECK-DAG: lw $[[UC1_ADDR:[0-9]+]], %got(uc1)($[[REG_GP]])
-; CHECK-DAG: lbu $[[UC1:[0-9]+]], 0($[[UC1_ADDR]])
-; CHECK-DAG: lbu $[[UC2:[0-9]+]], 0($[[UC2_ADDR]])
-; CHECK-DAG: xor $[[RES:[0-9]+]], $[[UC2]], $[[UC1]]
-; CHECK: sb $[[RES]], 0($[[UC_ADDR]])
-; CHECK: .end xorUc
- ret void
-}
-
-; Function Attrs: noinline nounwind
-define void @xorUc0() #0 {
-entry:
- %0 = load i8, i8* @uc1, align 1, !tbaa !2
- %xor = xor i8 %0, 23
- store i8 %xor, i8* @uc, align 1, !tbaa !2
-; CHECK-LABEL: .ent xorUc0
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[UC_ADDR:[0-9]+]], %got(uc)($[[REG_GP]])
-; CHECK-DAG: lw $[[UC1_ADDR:[0-9]+]], %got(uc1)($[[REG_GP]])
-; CHECK-DAG: lbu $[[UC1:[0-9]+]], 0($[[UC1_ADDR]])
-; CHECK-DAG: addiu $[[CONST_23:[0-9]+]], $zero, 23
-; CHECK-DAG: xor $[[RES:[0-9]+]], $[[UC1]], $[[CONST_23]]
-; CHECK: sb $[[RES]], 0($[[UC_ADDR]])
-; CHECK: .end xorUc0
- ret void
-}
-
-; Function Attrs: noinline nounwind
-define void @xorUc1() #0 {
-entry:
- %0 = load i8, i8* @uc1, align 1, !tbaa !2
- %xor = xor i8 %0, 120
- store i8 %xor, i8* @uc, align 1, !tbaa !2
-; CHECK-LABEL: .ent xorUc1
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[UC_ADDR:[0-9]+]], %got(uc)($[[REG_GP]])
-; CHECK-DAG: lw $[[UC1_ADDR:[0-9]+]], %got(uc1)($[[REG_GP]])
-; CHECK-DAG: lbu $[[UC1:[0-9]+]], 0($[[UC1_ADDR]])
-; CHECK-DAG: addiu $[[CONST_120:[0-9]+]], $zero, 120
-; CHECK-DAG: xor $[[RES:[0-9]+]], $[[UC1]], $[[CONST_120]]
-; CHECK: sb $[[RES]], 0($[[UC_ADDR]])
-; CHECK: .end xorUc1
- ret void
-}
-
-; Function Attrs: noinline nounwind
-define void @andUs() #0 {
-entry:
- %0 = load i16, i16* @us1, align 2, !tbaa !5
- %1 = load i16, i16* @us2, align 2, !tbaa !5
- %and3 = and i16 %1, %0
- store i16 %and3, i16* @us, align 2, !tbaa !5
-; CHECK-LABEL: .ent andUs
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[US_ADDR:[0-9]+]], %got(us)($[[REG_GP]])
-; CHECK-DAG: lw $[[US2_ADDR:[0-9]+]], %got(us2)($[[REG_GP]])
-; CHECK-DAG: lw $[[US1_ADDR:[0-9]+]], %got(us1)($[[REG_GP]])
-; CHECK-DAG: lhu $[[US1:[0-9]+]], 0($[[US1_ADDR]])
-; CHECK-DAG: lhu $[[US2:[0-9]+]], 0($[[US2_ADDR]])
-; CHECK-DAG: and $[[RES:[0-9]+]], $[[US2]], $[[UB1]]
-; CHECK: sh $[[RES]], 0($[[US_ADDR]])
-; CHECK: .end andUs
- ret void
-}
-
-; Function Attrs: noinline nounwind
-define void @andUs0() #0 {
-entry:
- %0 = load i16, i16* @us1, align 2, !tbaa !5
- %and = and i16 %0, 4660
- store i16 %and, i16* @us, align 2, !tbaa !5
-; CHECK-LABEL: .ent andUs0
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[US_ADDR:[0-9]+]], %got(us)($[[REG_GP]])
-; CHECK-DAG: lw $[[US1_ADDR:[0-9]+]], %got(us1)($[[REG_GP]])
-; CHECK-DAG: lhu $[[US1:[0-9]+]], 0($[[US1_ADDR]])
-; CHECK-DAG: addiu $[[CONST_4660:[0-9]+]], $zero, 4660
-; CHECK-DAG: and $[[RES:[0-9]+]], $[[US1]], $[[CONST_4660]]
-; CHECK: sh $[[RES]], 0($[[US_ADDR]])
-; CHECK: .end andUs0
- ret void
-}
-
-; Function Attrs: noinline nounwind
-define void @andUs1() #0 {
-entry:
- %0 = load i16, i16* @us1, align 2, !tbaa !5
- %and = and i16 %0, 61351
- store i16 %and, i16* @us, align 2, !tbaa !5
-; CHECK-LABEL: .ent andUs1
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[US_ADDR:[0-9]+]], %got(us)($[[REG_GP]])
-; CHECK-DAG: lw $[[US1_ADDR:[0-9]+]], %got(us1)($[[REG_GP]])
-; CHECK-DAG: lhu $[[US1:[0-9]+]], 0($[[US1_ADDR]])
-; CHECK-DAG: ori $[[CONST_61351:[0-9]+]], $zero, 61351
-; CHECK-DAG: and $[[RES:[0-9]+]], $[[US1]], $[[CONST_61351]]
-; CHECK: sh $[[RES]], 0($[[US_ADDR]])
-; CHECK: .end andUs1
- ret void
-}
-
-; Function Attrs: noinline nounwind
-define void @orUs() #0 {
-entry:
- %0 = load i16, i16* @us1, align 2, !tbaa !5
- %1 = load i16, i16* @us2, align 2, !tbaa !5
- %or3 = or i16 %1, %0
- store i16 %or3, i16* @us, align 2, !tbaa !5
-; CHECK-LABEL: .ent orUs
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[US_ADDR:[0-9]+]], %got(us)($[[REG_GP]])
-; CHECK-DAG: lw $[[US2_ADDR:[0-9]+]], %got(us2)($[[REG_GP]])
-; CHECK-DAG: lw $[[US1_ADDR:[0-9]+]], %got(us1)($[[REG_GP]])
-; CHECK-DAG: lhu $[[US1:[0-9]+]], 0($[[US1_ADDR]])
-; CHECK-DAG: lhu $[[US2:[0-9]+]], 0($[[US2_ADDR]])
-; CHECK-DAG: or $[[RES:[0-9]+]], $[[US2]], $[[US1]]
-; CHECK: sh $[[RES]], 0($[[US_ADDR]])
-; CHECK: .end orUs
- ret void
-}
-
-; Function Attrs: noinline nounwind
-define void @orUs0() #0 {
-entry:
- %0 = load i16, i16* @us1, align 2, !tbaa !5
- %or = or i16 %0, 17666
- store i16 %or, i16* @us, align 2, !tbaa !5
- ret void
-}
-
-; Function Attrs: noinline nounwind
-define void @orUs1() #0 {
-entry:
- %0 = load i16, i16* @us1, align 2, !tbaa !5
- %or = or i16 %0, 60945
- store i16 %or, i16* @us, align 2, !tbaa !5
-; CHECK-LABEL: .ent orUs1
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[US_ADDR:[0-9]+]], %got(us)($[[REG_GP]])
-; CHECK-DAG: lw $[[US1_ADDR:[0-9]+]], %got(us1)($[[REG_GP]])
-; CHECK-DAG: lhu $[[US1:[0-9]+]], 0($[[US1_ADDR]])
-; CHECK-DAG: ori $[[CONST_60945:[0-9]+]], $zero, 60945
-; CHECK-DAG: or $[[RES:[0-9]+]], $[[US1]], $[[CONST_60945]]
-; CHECK: sh $[[RES]], 0($[[US_ADDR]])
-; CHECK: .end orUs1
- ret void
-}
-
-; Function Attrs: noinline nounwind
-define void @xorUs() #0 {
-entry:
- %0 = load i16, i16* @us1, align 2, !tbaa !5
- %1 = load i16, i16* @us2, align 2, !tbaa !5
- %xor3 = xor i16 %1, %0
- store i16 %xor3, i16* @us, align 2, !tbaa !5
-; CHECK-LABEL: .ent xorUs
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[US_ADDR:[0-9]+]], %got(us)($[[REG_GP]])
-; CHECK-DAG: lw $[[US2_ADDR:[0-9]+]], %got(us2)($[[REG_GP]])
-; CHECK-DAG: lw $[[US1_ADDR:[0-9]+]], %got(us1)($[[REG_GP]])
-; CHECK-DAG: lhu $[[US1:[0-9]+]], 0($[[US1_ADDR]])
-; CHECK-DAG: lhu $[[US2:[0-9]+]], 0($[[US2_ADDR]])
-; CHECK-DAG: xor $[[RES:[0-9]+]], $[[US2]], $[[US1]]
-; CHECK: sh $[[RES]], 0($[[US_ADDR]])
-; CHECK: .end xorUs
- ret void
-}
-
-; Function Attrs: noinline nounwind
-define void @xorUs0() #0 {
-entry:
- %0 = load i16, i16* @us1, align 2, !tbaa !5
- %xor = xor i16 %0, 6062
- store i16 %xor, i16* @us, align 2, !tbaa !5
-; CHECK-LABEL: .ent xorUs0
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[US_ADDR:[0-9]+]], %got(us)($[[REG_GP]])
-; CHECK-DAG: lw $[[US1_ADDR:[0-9]+]], %got(us1)($[[REG_GP]])
-; CHECK-DAG: lhu $[[US1:[0-9]+]], 0($[[US1_ADDR]])
-; CHECK-DAG: addiu $[[CONST_6062:[0-9]+]], $zero, 6062
-; CHECK-DAG: xor $[[RES:[0-9]+]], $[[US1]], $[[CONST_6062]]
-; CHECK: sh $[[RES]], 0($[[US_ADDR]])
-; CHECK: .end xorUs0
-
- ret void
-}
-
-; Function Attrs: noinline nounwind
-define void @xorUs1() #0 {
-entry:
- %0 = load i16, i16* @us1, align 2, !tbaa !5
- %xor = xor i16 %0, 60024
- store i16 %xor, i16* @us, align 2, !tbaa !5
-; CHECK-LABEL: .ent xorUs1
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[US_ADDR:[0-9]+]], %got(us)($[[REG_GP]])
-; CHECK-DAG: lw $[[US1_ADDR:[0-9]+]], %got(us1)($[[REG_GP]])
-; CHECK-DAG: lhu $[[US1:[0-9]+]], 0($[[US1_ADDR]])
-; CHECK-DAG: ori $[[CONST_60024:[0-9]+]], $zero, 60024
-; CHECK-DAG: xor $[[RES:[0-9]+]], $[[US1]], $[[CONST_60024]]
-; CHECK: sh $[[RES]], 0($[[US_ADDR]])
-; CHECK: .end xorUs1
- ret void
-}
-
-attributes #0 = { noinline nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
-attributes #1 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
-attributes #2 = { nounwind }
-
-!llvm.module.flags = !{!0}
-!llvm.ident = !{!1}
-
-!0 = !{i32 1, !"PIC Level", i32 2}
-!1 = !{!"clang version 3.7.0 (trunk)"}
-!2 = !{!3, !3, i64 0}
-!3 = !{!"omnipotent char", !4, i64 0}
-!4 = !{!"Simple C/C++ TBAA"}
-!5 = !{!6, !6, i64 0}
-!6 = !{!"short", !3, i64 0}
diff --git a/test/CodeGen/Mips/Fast-ISel/memtest1.ll b/test/CodeGen/Mips/Fast-ISel/memtest1.ll
deleted file mode 100644
index aca6aa569bac..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/memtest1.ll
+++ /dev/null
@@ -1,74 +0,0 @@
-; RUN: llc < %s -march=mipsel -mcpu=mips32 -O0 -relocation-model=pic \
-; RUN: -fast-isel-abort=3 -verify-machineinstrs | FileCheck %s \
-; RUN: -check-prefix=ALL -check-prefix=32R1
-; RUN: llc < %s -march=mipsel -mcpu=mips32r2 -O0 -relocation-model=pic \
-; RUN: -fast-isel-abort=3 -verify-machineinstrs | FileCheck %s \
-; RUN: -check-prefix=ALL -check-prefix=32R2
-
-@str = private unnamed_addr constant [12 x i8] c"hello there\00", align 1
-@src = global i8* getelementptr inbounds ([12 x i8], [12 x i8]* @str, i32 0, i32 0), align 4
-@i = global i32 12, align 4
-@dest = common global [50 x i8] zeroinitializer, align 1
-
-declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture readonly, i32, i32, i1)
-declare void @llvm.memmove.p0i8.p0i8.i32(i8* nocapture, i8* nocapture readonly, i32, i32, i1)
-declare void @llvm.memset.p0i8.i32(i8* nocapture, i8, i32, i32, i1)
-
-define void @cpy(i8* %src, i32 %i) {
- ; ALL-LABEL: cpy:
-
- ; ALL-DAG: lw $[[T0:[0-9]+]], %got(dest)(${{[0-9]+}})
- ; ALL-DAG: sw $4, 24($sp)
- ; ALL-DAG: move $4, $[[T0]]
- ; ALL-DAG: sw $5, 20($sp)
- ; ALL-DAG: lw $[[T1:[0-9]+]], 24($sp)
- ; ALL-DAG: move $5, $[[T1]]
- ; ALL-DAG: lw $6, 20($sp)
- ; ALL-DAG: lw $[[T2:[0-9]+]], %got(memcpy)(${{[0-9]+}})
- ; ALL: jalr $[[T2]]
- ; ALL-NEXT: nop
- ; ALL-NOT: {{.*}}$2{{.*}}
- call void @llvm.memcpy.p0i8.p0i8.i32(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @dest, i32 0, i32 0),
- i8* %src, i32 %i, i32 1, i1 false)
- ret void
-}
-
-define void @mov(i8* %src, i32 %i) {
- ; ALL-LABEL: mov:
-
-
- ; ALL-DAG: lw $[[T0:[0-9]+]], %got(dest)(${{[0-9]+}})
- ; ALL-DAG: sw $4, 24($sp)
- ; ALL-DAG: move $4, $[[T0]]
- ; ALL-DAG: sw $5, 20($sp)
- ; ALL-DAG: lw $[[T1:[0-9]+]], 24($sp)
- ; ALL-DAG: move $5, $[[T1]]
- ; ALL-DAG: lw $6, 20($sp)
- ; ALL-DAG: lw $[[T2:[0-9]+]], %got(memmove)(${{[0-9]+}})
- ; ALL: jalr $[[T2]]
- ; ALL-NEXT: nop
- ; ALL-NOT: {{.*}}$2{{.*}}
- call void @llvm.memmove.p0i8.p0i8.i32(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @dest, i32 0, i32 0),
- i8* %src, i32 %i, i32 1, i1 false)
- ret void
-}
-
-define void @clear(i32 %i) {
- ; ALL-LABEL: clear:
-
- ; ALL-DAG: lw $[[T0:[0-9]+]], %got(dest)(${{[0-9]+}})
- ; ALL-DAG: sw $4, 16($sp)
- ; ALL-DAG: move $4, $[[T0]]
- ; ALL-DAG: addiu $[[T1:[0-9]+]], $zero, 42
- ; 32R1-DAG: sll $[[T2:[0-9]+]], $[[T1]], 24
- ; 32R1-DAG: sra $5, $[[T2]], 24
- ; 32R2-DAG: seb $5, $[[T1]]
- ; ALL-DAG: lw $6, 16($sp)
- ; ALL-DAG: lw $[[T2:[0-9]+]], %got(memset)(${{[0-9]+}})
- ; ALL: jalr $[[T2]]
- ; ALL-NEXT: nop
- ; ALL-NOT: {{.*}}$2{{.*}}
- call void @llvm.memset.p0i8.i32(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @dest, i32 0, i32 0),
- i8 42, i32 %i, i32 1, i1 false)
- ret void
-}
diff --git a/test/CodeGen/Mips/Fast-ISel/mul1.ll b/test/CodeGen/Mips/Fast-ISel/mul1.ll
deleted file mode 100644
index 8713e7ef1d96..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/mul1.ll
+++ /dev/null
@@ -1,16 +0,0 @@
-; RUN: llc < %s -march=mipsel -mcpu=mips32 -O0 -relocation-model=pic
-; RUN: llc < %s -march=mipsel -mcpu=mips32r2 -O0 -relocation-model=pic
-
-; The test is just to make sure it is able to allocate
-; registers for this example. There was an issue with allocating AC0
-; after a mul instruction.
-
-declare { i32, i1 } @llvm.smul.with.overflow.i32(i32, i32)
-
-define i32 @foo(i32 %a, i32 %b) {
-entry:
- %0 = mul i32 %a, %b
- %1 = call { i32, i1 } @llvm.smul.with.overflow.i32(i32 %0, i32 %b)
- %2 = extractvalue { i32, i1 } %1, 0
- ret i32 %2
-}
diff --git a/test/CodeGen/Mips/Fast-ISel/nullvoid.ll b/test/CodeGen/Mips/Fast-ISel/nullvoid.ll
deleted file mode 100644
index 617b9bb07dd9..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/nullvoid.ll
+++ /dev/null
@@ -1,11 +0,0 @@
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32r2 \
-; RUN: < %s | FileCheck %s
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32 \
-; RUN: < %s | FileCheck %s
-
-; Function Attrs: nounwind
-define void @foo() {
-entry:
- ret void
-; CHECK: jr $ra
-}
diff --git a/test/CodeGen/Mips/Fast-ISel/overflt.ll b/test/CodeGen/Mips/Fast-ISel/overflt.ll
deleted file mode 100644
index ed1dc2157355..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/overflt.ll
+++ /dev/null
@@ -1,64 +0,0 @@
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32r2 \
-; RUN: < %s | FileCheck %s
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32 \
-; RUN: < %s | FileCheck %s
-
-@x = common global [128000 x float] zeroinitializer, align 4
-@y = global float* getelementptr inbounds ([128000 x float], [128000 x float]* @x, i32 0, i32 0), align 4
-@result = common global float 0.000000e+00, align 4
-@.str = private unnamed_addr constant [5 x i8] c"%f \0A\00", align 1
-
-; Function Attrs: nounwind
-define void @foo() {
-entry:
-; CHECK-LABEL: .ent foo
- %0 = load float*, float** @y, align 4
- %arrayidx = getelementptr inbounds float, float* %0, i32 64000
- store float 5.500000e+00, float* %arrayidx, align 4
-; CHECK: lui $[[REG_FPCONST_INT:[0-9]+]], 16560
-; CHECK: mtc1 $[[REG_FPCONST_INT]], $f[[REG_FPCONST:[0-9]+]]
-; CHECK: lw $[[REG_Y_GOT:[0-9]+]], %got(y)(${{[0-9]+}})
-; CHECK: lw $[[REG_Y:[0-9]+]], 0($[[REG_Y_GOT]])
-; CHECK: lui $[[REG_IDX_UPPER:[0-9]+]], 3
-; CHECK: ori $[[REG_IDX:[0-9]+]], $[[REG_IDX_UPPER]], 59392
-; CHECK: addu $[[REG_Y_IDX:[0-9]+]], $[[REG_IDX]], $[[REG_Y]]
-; CHECK: swc1 $f[[REG_FPCONST]], 0($[[REG_Y_IDX]])
- ret void
-; CHECK-LABEL: .end foo
-}
-
-; Function Attrs: nounwind
-define void @goo() {
-entry:
-; CHECK-LABEL: .ent goo
- %0 = load float*, float** @y, align 4
- %arrayidx = getelementptr inbounds float, float* %0, i32 64000
- %1 = load float, float* %arrayidx, align 4
- store float %1, float* @result, align 4
-; CHECK-DAG: lw $[[REG_RESULT:[0-9]+]], %got(result)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_Y_GOT:[0-9]+]], %got(y)(${{[0-9]+}})
-; CHECK-DAG: lw $[[REG_Y:[0-9]+]], 0($[[REG_Y_GOT]])
-; CHECK-DAG: lui $[[REG_IDX_UPPER:[0-9]+]], 3
-; CHECK-DAG: ori $[[REG_IDX:[0-9]+]], $[[REG_IDX_UPPER]], 59392
-; CHECK-DAG: addu $[[REG_Y_IDX:[0-9]+]], $[[REG_IDX]], $[[REG_Y]]
-; CHECK-DAG: lwc1 $f[[Y_IDX:[0-9]+]], 0($[[REG_Y_IDX]])
-; CHECK-DAG: swc1 $f[[Y_IDX]], 0($[[REG_RESULT]])
-; CHECK-LABEL: .end goo
- ret void
-}
-
-;
-; Original C code for test.
-;
-;float x[128000];
-;float *y = x;
-;float result;
-
-
-;void foo() {
-; y[64000] = 5.5;
-;}
-
-;void goo() {
-; result = y[64000];
-;}
diff --git a/test/CodeGen/Mips/Fast-ISel/rem1.ll b/test/CodeGen/Mips/Fast-ISel/rem1.ll
deleted file mode 100644
index c8524a5b81e1..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/rem1.ll
+++ /dev/null
@@ -1,56 +0,0 @@
-; RUN: llc < %s -march=mipsel -mcpu=mips32 -O0 -relocation-model=pic \
-; RUN: -fast-isel-abort=3 | FileCheck %s
-; RUN: llc < %s -march=mipsel -mcpu=mips32r2 -O0 -relocation-model=pic \
-; RUN: -fast-isel-abort=3 | FileCheck %s
-
-@sj = global i32 200, align 4
-@sk = global i32 -47, align 4
-@uj = global i32 200, align 4
-@uk = global i32 43, align 4
-@si = common global i32 0, align 4
-@ui = common global i32 0, align 4
-
-define void @rems() {
- ; CHECK-LABEL: rems:
-
- ; CHECK: lui $[[GOT1:[0-9]+]], %hi(_gp_disp)
- ; CHECK: addiu $[[GOT2:[0-9]+]], $[[GOT1]], %lo(_gp_disp)
- ; CHECK: addu $[[GOT:[0-9]+]], $[[GOT2:[0-9]+]], $25
- ; CHECK-DAG: lw $[[I_ADDR:[0-9]+]], %got(si)($[[GOT]])
- ; CHECK-DAG: lw $[[K_ADDR:[0-9]+]], %got(sk)($[[GOT]])
- ; CHECK-DAG: lw $[[J_ADDR:[0-9]+]], %got(sj)($[[GOT]])
- ; CHECK-DAG: lw $[[J:[0-9]+]], 0($[[J_ADDR]])
- ; CHECK-DAG: lw $[[K:[0-9]+]], 0($[[K_ADDR]])
- ; CHECK-DAG: div $zero, $[[J]], $[[K]]
- ; CHECK-DAG: teq $[[K]], $zero, 7
- ; CHECK-DAG: mfhi $[[RESULT:[0-9]+]]
- ; CHECK: sw $[[RESULT]], 0($[[I_ADDR]])
- %1 = load i32, i32* @sj, align 4
- %2 = load i32, i32* @sk, align 4
- %rem = srem i32 %1, %2
- store i32 %rem, i32* @si, align 4
- ret void
-}
-
-; Function Attrs: noinline nounwind
-define void @remu() {
- ; CHECK-LABEL: remu:
-
- ; CHECK: lui $[[GOT1:[0-9]+]], %hi(_gp_disp)
- ; CHECK: addiu $[[GOT2:[0-9]+]], $[[GOT1]], %lo(_gp_disp)
- ; CHECK: addu $[[GOT:[0-9]+]], $[[GOT2:[0-9]+]], $25
- ; CHECK-DAG: lw $[[I_ADDR:[0-9]+]], %got(ui)($[[GOT]])
- ; CHECK-DAG: lw $[[K_ADDR:[0-9]+]], %got(uk)($[[GOT]])
- ; CHECK-DAG: lw $[[J_ADDR:[0-9]+]], %got(uj)($[[GOT]])
- ; CHECK-DAG: lw $[[J:[0-9]+]], 0($[[J_ADDR]])
- ; CHECK-DAG: lw $[[K:[0-9]+]], 0($[[K_ADDR]])
- ; CHECK-DAG: divu $zero, $[[J]], $[[K]]
- ; CHECK-DAG: teq $[[K]], $zero, 7
- ; CHECK-DAG: mfhi $[[RESULT:[0-9]+]]
- ; CHECK: sw $[[RESULT]], 0($[[I_ADDR]])
- %1 = load i32, i32* @uj, align 4
- %2 = load i32, i32* @uk, align 4
- %rem = urem i32 %1, %2
- store i32 %rem, i32* @ui, align 4
- ret void
-}
diff --git a/test/CodeGen/Mips/Fast-ISel/retabi.ll b/test/CodeGen/Mips/Fast-ISel/retabi.ll
deleted file mode 100644
index d8d1222d3e3e..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/retabi.ll
+++ /dev/null
@@ -1,108 +0,0 @@
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32r2 \
-; RUN: < %s | FileCheck %s
-
-@i = global i32 75, align 4
-@s = global i16 -345, align 2
-@c = global i8 118, align 1
-@f = global float 0x40BE623360000000, align 4
-@d = global double 1.298330e+03, align 8
-
-; Function Attrs: nounwind
-define i32 @reti() {
-entry:
-; CHECK-LABEL: reti:
- %0 = load i32, i32* @i, align 4
- ret i32 %0
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK: lw $[[REG_I_ADDR:[0-9]+]], %got(i)($[[REG_GP]])
-; CHECK: lw $2, 0($[[REG_I_ADDR]])
-; CHECK: jr $ra
-}
-
-; Function Attrs: nounwind
-define i16 @retus() {
-entry:
-; CHECK-LABEL: retus:
- %0 = load i16, i16* @s, align 2
- ret i16 %0
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK: lw $[[REG_S_ADDR:[0-9]+]], %got(s)($[[REG_GP]])
-; CHECK: lhu $2, 0($[[REG_S_ADDR]])
-; CHECK: jr $ra
-}
-
-; Function Attrs: nounwind
-define signext i16 @rets() {
-entry:
-; CHECK-LABEL: rets:
- %0 = load i16, i16* @s, align 2
- ret i16 %0
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK: lw $[[REG_S_ADDR:[0-9]+]], %got(s)($[[REG_GP]])
-; CHECK: lhu $[[REG_S:[0-9]+]], 0($[[REG_S_ADDR]])
-; CHECK: seh $2, $[[REG_S]]
-; CHECK: jr $ra
-}
-
-; Function Attrs: nounwind
-define i8 @retuc() {
-entry:
-; CHECK-LABEL: retuc:
- %0 = load i8, i8* @c, align 1
- ret i8 %0
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK: lw $[[REG_C_ADDR:[0-9]+]], %got(c)($[[REG_GP]])
-; CHECK: lbu $2, 0($[[REG_C_ADDR]])
-; CHECK: jr $ra
-}
-
-; Function Attrs: nounwind
-define signext i8 @retc() {
-entry:
-; CHECK-LABEL: retc:
- %0 = load i8, i8* @c, align 1
- ret i8 %0
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK: lw $[[REG_C_ADDR:[0-9]+]], %got(c)($[[REG_GP]])
-; CHECK: lbu $[[REG_C:[0-9]+]], 0($[[REG_C_ADDR]])
-; CHECK: seb $2, $[[REG_C]]
-; CHECK: jr $ra
-}
-
-; Function Attrs: nounwind
-define float @retf() {
-entry:
-; CHECK-LABEL: retf:
- %0 = load float, float* @f, align 4
- ret float %0
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK: lw $[[REG_F_ADDR:[0-9]+]], %got(f)($[[REG_GP]])
-; CHECK: lwc1 $f0, 0($[[REG_F_ADDR]])
-; CHECK: jr $ra
-}
-
-; Function Attrs: nounwind
-define double @retd() {
-entry:
-; CHECK-LABEL: retd:
- %0 = load double, double* @d, align 8
- ret double %0
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK: lw $[[REG_D_ADDR:[0-9]+]], %got(d)($[[REG_GP]])
-; CHECK: ldc1 $f0, 0($[[REG_D_ADDR]])
-; CHECK: jr $ra
-}
diff --git a/test/CodeGen/Mips/Fast-ISel/sel1.ll b/test/CodeGen/Mips/Fast-ISel/sel1.ll
deleted file mode 100644
index b3fc58f293af..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/sel1.ll
+++ /dev/null
@@ -1,126 +0,0 @@
-; RUN: llc < %s -march=mipsel -mcpu=mips32r2 -O2 -relocation-model=pic \
-; RUN: -fast-isel -fast-isel-abort=1 | FileCheck %s
-
-define i1 @sel_i1(i1 %j, i1 %k, i1 %l) {
-entry:
- ; CHECK-LABEL: sel_i1:
-
- ; FIXME: The following instruction is redundant.
- ; CHECK: xor $[[T0:[0-9]+]], $4, $zero
- ; CHECK-NEXT: sltu $[[T1:[0-9]+]], $zero, $[[T0]]
- ; CHECK-NEXT: andi $[[T2:[0-9]+]], $[[T1]], 1
- ; CHECK-NEXT: movn $6, $5, $[[T2]]
- ; CHECK: move $2, $6
- %cond = icmp ne i1 %j, 0
- %res = select i1 %cond, i1 %k, i1 %l
- ret i1 %res
-}
-
-define i8 @sel_i8(i8 %j, i8 %k, i8 %l) {
-entry:
- ; CHECK-LABEL: sel_i8:
-
- ; CHECK-DAG: seb $[[T0:[0-9]+]], $4
- ; FIXME: The following 2 instructions are redundant.
- ; CHECK-DAG: seb $[[T1:[0-9]+]], $zero
- ; CHECK: xor $[[T2:[0-9]+]], $[[T0]], $[[T1]]
- ; CHECK-NEXT: sltu $[[T3:[0-9]+]], $zero, $[[T2]]
- ; CHECK-NEXT: andi $[[T4:[0-9]+]], $[[T3]], 1
- ; CHECK-NEXT: movn $6, $5, $[[T4]]
- ; CHECK: move $2, $6
- %cond = icmp ne i8 %j, 0
- %res = select i1 %cond, i8 %k, i8 %l
- ret i8 %res
-}
-
-define i16 @sel_i16(i16 %j, i16 %k, i16 %l) {
-entry:
- ; CHECK-LABEL: sel_i16:
-
- ; CHECK-DAG: seh $[[T0:[0-9]+]], $4
- ; FIXME: The following 2 instructions are redundant.
- ; CHECK-DAG: seh $[[T1:[0-9]+]], $zero
- ; CHECK: xor $[[T2:[0-9]+]], $[[T0]], $[[T1]]
- ; CHECK-NEXT: sltu $[[T3:[0-9]+]], $zero, $[[T2]]
- ; CHECK-NEXT: andi $[[T4:[0-9]+]], $[[T3]], 1
- ; CHECK-NEXT: movn $6, $5, $[[T4]]
- ; CHECK: move $2, $6
- %cond = icmp ne i16 %j, 0
- %res = select i1 %cond, i16 %k, i16 %l
- ret i16 %res
-}
-
-define i32 @sel_i32(i32 %j, i32 %k, i32 %l) {
-entry:
- ; CHECK-LABEL: sel_i32:
-
- ; FIXME: The following instruction is redundant.
- ; CHECK: xor $[[T0:[0-9]+]], $4, $zero
- ; CHECK-NEXT: sltu $[[T1:[0-9]+]], $zero, $[[T0]]
- ; CHECK-NEXT: andi $[[T2:[0-9]+]], $[[T1]], 1
- ; CHECK-NEXT: movn $6, $5, $[[T2]]
- ; CHECK: move $2, $6
- %cond = icmp ne i32 %j, 0
- %res = select i1 %cond, i32 %k, i32 %l
- ret i32 %res
-}
-
-define float @sel_float(i32 %j, float %k, float %l) {
-entry:
- ; CHECK-LABEL: sel_float:
-
- ; CHECK-DAG: mtc1 $6, $f0
- ; CHECK-DAG: mtc1 $5, $f1
- ; CHECK-DAG: xor $[[T0:[0-9]+]], $4, $zero
- ; CHECK: sltu $[[T1:[0-9]+]], $zero, $[[T0]]
- ; CHECK-NEXT: andi $[[T2:[0-9]+]], $[[T1]], 1
- ; CHECK: movn.s $f0, $f1, $[[T2]]
- %cond = icmp ne i32 %j, 0
- %res = select i1 %cond, float %k, float %l
- ret float %res
-}
-
-define float @sel_float2(float %k, float %l, i32 %j) {
-entry:
- ; CHECK-LABEL: sel_float2:
-
- ; CHECK-DAG: xor $[[T0:[0-9]+]], $6, $zero
- ; CHECK: sltu $[[T1:[0-9]+]], $zero, $[[T0]]
- ; CHECK-NEXT: andi $[[T2:[0-9]+]], $[[T1]], 1
- ; CHECK: movn.s $f14, $f12, $[[T2]]
- ; CHECK: mov.s $f0, $f14
- %cond = icmp ne i32 %j, 0
- %res = select i1 %cond, float %k, float %l
- ret float %res
-}
-
-define double @sel_double(i32 %j, double %k, double %l) {
-entry:
- ; CHECK-LABEL: sel_double:
-
- ; CHECK-DAG: mtc1 $6, $f2
- ; CHECK-DAG: mthc1 $7, $f2
- ; CHECK-DAG: ldc1 $f0, 16($sp)
- ; CHECK-DAG: xor $[[T0:[0-9]+]], $4, $zero
- ; CHECK: sltu $[[T1:[0-9]+]], $zero, $[[T0]]
- ; CHECK-NEXT: andi $[[T2:[0-9]+]], $[[T1]], 1
- ; CHECK: movn.d $f0, $f2, $[[T2]]
- %cond = icmp ne i32 %j, 0
- %res = select i1 %cond, double %k, double %l
- ret double %res
-}
-
-define double @sel_double2(double %k, double %l, i32 %j) {
-entry:
- ; CHECK-LABEL: sel_double2:
-
- ; CHECK-DAG: lw $[[SEL:[0-9]+]], 16($sp)
- ; CHECK-DAG: xor $[[T0:[0-9]+]], $[[SEL]], $zero
- ; CHECK: sltu $[[T1:[0-9]+]], $zero, $[[T0]]
- ; CHECK-NEXT: andi $[[T2:[0-9]+]], $[[T1]], 1
- ; CHECK: movn.d $f14, $f12, $[[T2]]
- ; CHECK: mov.d $f0, $f14
- %cond = icmp ne i32 %j, 0
- %res = select i1 %cond, double %k, double %l
- ret double %res
-}
diff --git a/test/CodeGen/Mips/Fast-ISel/shftopm.ll b/test/CodeGen/Mips/Fast-ISel/shftopm.ll
deleted file mode 100644
index 184db73ceab0..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/shftopm.ll
+++ /dev/null
@@ -1,122 +0,0 @@
-; RUN: llc -march=mipsel -relocation-model=pic -O0 \
-; RUN: -fast-isel-abort=3 -mcpu=mips32r2 < %s | FileCheck %s
-; RUN: llc -march=mipsel -relocation-model=pic -O0 \
-; RUN: -fast-isel-abort=3 -mcpu=mips32 < %s | FileCheck %s
-
-@s1 = global i16 -89, align 2
-@s2 = global i16 4, align 2
-@us1 = global i16 -503, align 2
-@us2 = global i16 5, align 2
-@s3 = common global i16 0, align 2
-@us3 = common global i16 0, align 2
-
-define void @sll() {
-entry:
- %0 = load i16, i16* @s1, align 2
- %1 = load i16, i16* @s2, align 2
- %shl = shl i16 %0, %1
- store i16 %shl, i16* @s3, align 2
-; CHECK-LABEL: sll:
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK-DAG: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK-DAG: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[S3_ADDR:[0-9]+]], %got(s3)($[[REG_GP]])
-; CHECK-DAG: lw $[[S2_ADDR:[0-9]+]], %got(s2)($[[REG_GP]])
-; CHECK-DAG: lw $[[S1_ADDR:[0-9]+]], %got(s1)($[[REG_GP]])
-; CHECK-DAG: lhu $[[S1:[0-9]+]], 0($[[S1_ADDR]])
-; CHECK-DAG: lhu $[[S2:[0-9]+]], 0($[[S2_ADDR]])
-; CHECK: sllv $[[RES:[0-9]+]], $[[S1]], $[[S2]]
-; CHECK: sh $[[RES]], 0($[[S3_ADDR]])
- ret void
-}
-
-define void @slli() {
-entry:
- %0 = load i16, i16* @s1, align 2
- %shl = shl i16 %0, 5
- store i16 %shl, i16* @s3, align 2
-; CHECK-LABEL: slli:
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK-DAG: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK-DAG: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[S3_ADDR:[0-9]+]], %got(s3)($[[REG_GP]])
-; CHECK-DAG: lw $[[S1_ADDR:[0-9]+]], %got(s1)($[[REG_GP]])
-; CHECK-DAG: lhu $[[S1:[0-9]+]], 0($[[S1_ADDR]])
-; CHECK: sll $[[RES:[0-9]+]], $[[S1]], 5
-; CHECK: sh $[[RES]], 0($[[S3_ADDR]])
- ret void
-}
-
-define void @srl() {
-entry:
- %0 = load i16, i16* @us1, align 2
- %1 = load i16, i16* @us2, align 2
- %shr = lshr i16 %0, %1
- store i16 %shr, i16* @us3, align 2
- ret void
-; CHECK-LABEL: srl:
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK-DAG: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK-DAG: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[US3_ADDR:[0-9]+]], %got(us3)($[[REG_GP]])
-; CHECK-DAG: lw $[[US2_ADDR:[0-9]+]], %got(us2)($[[REG_GP]])
-; CHECK-DAG: lw $[[US1_ADDR:[0-9]+]], %got(us1)($[[REG_GP]])
-; CHECK-DAG: lhu $[[US1:[0-9]+]], 0($[[US1_ADDR]])
-; CHECK-DAG: lhu $[[US2:[0-9]+]], 0($[[US2_ADDR]])
-; CHECK: srlv $[[RES:[0-9]+]], $[[US1]], $[[US2]]
-; CHECK: sh $[[RES]], 0($[[S3_ADDR]])
-}
-
-define void @srli() {
-entry:
- %0 = load i16, i16* @us1, align 2
- %shr = lshr i16 %0, 4
- store i16 %shr, i16* @us3, align 2
-; CHECK-LABEL: srli:
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK-DAG: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK-DAG: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[US3_ADDR:[0-9]+]], %got(us3)($[[REG_GP]])
-; CHECK-DAG: lw $[[US1_ADDR:[0-9]+]], %got(us1)($[[REG_GP]])
-; CHECK-DAG: lhu $[[US1:[0-9]+]], 0($[[US1_ADDR]])
-; CHECK: srl $[[RES:[0-9]+]], $[[US1]], 4
-; CHECK: sh $[[RES]], 0($[[S3_ADDR]])
- ret void
-}
-
-define void @sra() {
-entry:
- %0 = load i16, i16* @s1, align 2
- %1 = load i16, i16* @s2, align 2
- %shr = ashr i16 %0, %1
- store i16 %shr, i16* @s3, align 2
-; CHECK-LABEL: sra:
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK-DAG: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK-DAG: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[S3_ADDR:[0-9]+]], %got(s3)($[[REG_GP]])
-; CHECK-DAG: lw $[[S2_ADDR:[0-9]+]], %got(s2)($[[REG_GP]])
-; CHECK-DAG: lw $[[S1_ADDR:[0-9]+]], %got(s1)($[[REG_GP]])
-; CHECK-DAG: lhu $[[S1:[0-9]+]], 0($[[S1_ADDR]])
-; CHECK-DAG: lhu $[[S2:[0-9]+]], 0($[[S2_ADDR]])
-; CHECK: srav $[[RES:[0-9]+]], $[[S1]], $[[S2]]
-; CHECK: sh $[[RES]], 0($[[S3_ADDR]])
- ret void
-}
-
-define void @srai() {
-entry:
- %0 = load i16, i16* @s1, align 2
- %shr = ashr i16 %0, 2
- store i16 %shr, i16* @s3, align 2
-; CHECK-LABEL: srai:
-; CHECK: lui $[[REG_GPa:[0-9]+]], %hi(_gp_disp)
-; CHECK-DAG: addiu $[[REG_GPb:[0-9]+]], $[[REG_GPa]], %lo(_gp_disp)
-; CHECK-DAG: addu $[[REG_GP:[0-9]+]], $[[REG_GPb]], $25
-; CHECK-DAG: lw $[[S3_ADDR:[0-9]+]], %got(s3)($[[REG_GP]])
-; CHECK-DAG: lw $[[S1_ADDR:[0-9]+]], %got(s1)($[[REG_GP]])
-; CHECK-DAG: lhu $[[S1:[0-9]+]], 0($[[S1_ADDR]])
-; CHECK: sra $[[RES:[0-9]+]], $[[S1]], 2
-; CHECK: sh $[[RES]], 0($[[S3_ADDR]])
- ret void
-}
diff --git a/test/CodeGen/Mips/Fast-ISel/shift.ll b/test/CodeGen/Mips/Fast-ISel/shift.ll
deleted file mode 100644
index 651fb6ad1f5a..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/shift.ll
+++ /dev/null
@@ -1,24 +0,0 @@
-; RUN: llc -march=mipsel -mcpu=mips32r2 -O0 -fast-isel=true -filetype=obj %s -o - \
-; RUN: | llvm-objdump -d - | FileCheck %s
-
-; This test checks that encoding for srl is correct when fast-isel for mips32r2 is used.
-
-%struct.s = type { [4 x i8], i32 }
-
-define i32 @main() nounwind uwtable {
-entry:
- %foo = alloca %struct.s, align 4
- %0 = bitcast %struct.s* %foo to i32*
- %bf.load = load i32, i32* %0, align 4
- %bf.lshr = lshr i32 %bf.load, 2
- %cmp = icmp ne i32 %bf.lshr, 2
- br i1 %cmp, label %if.then, label %if.end
-
-if.then:
- unreachable
-
-if.end:
- ret i32 0
-}
-
-; CHECK: srl ${{[0-9]+}}, ${{[0-9]+}}, {{[0-9]+}}
diff --git a/test/CodeGen/Mips/Fast-ISel/simplestore.ll b/test/CodeGen/Mips/Fast-ISel/simplestore.ll
deleted file mode 100644
index 1379390039a7..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/simplestore.ll
+++ /dev/null
@@ -1,17 +0,0 @@
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32r2 \
-; RUN: < %s | FileCheck %s
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32 \
-; RUN: < %s | FileCheck %s
-
-@abcd = external global i32
-
-; Function Attrs: nounwind
-define void @foo() {
-entry:
- store i32 12345, i32* @abcd, align 4
-; CHECK: addiu $[[REG1:[0-9]+]], $zero, 12345
-; CHECK: lw $[[REG2:[0-9]+]], %got(abcd)(${{[0-9]+}})
-; CHECK: sw $[[REG1]], 0($[[REG2]])
- ret void
-}
-
diff --git a/test/CodeGen/Mips/Fast-ISel/simplestorefp1.ll b/test/CodeGen/Mips/Fast-ISel/simplestorefp1.ll
deleted file mode 100644
index 4ee60bf5e61b..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/simplestorefp1.ll
+++ /dev/null
@@ -1,54 +0,0 @@
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32r2 \
-; RUN: < %s | FileCheck %s
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32 \
-; RUN: < %s | FileCheck %s
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32r2 \
-; RUN: < %s | FileCheck %s -check-prefix=mips32r2
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32 \
-; RUN: < %s | FileCheck %s -check-prefix=mips32
-
-@f = common global float 0.000000e+00, align 4
-@de = common global double 0.000000e+00, align 8
-
-; Function Attrs: nounwind
-define void @f1() #0 {
-entry:
- store float 0x3FFA76C8C0000000, float* @f, align 4
- ret void
-; CHECK: .ent f1
-; CHECK: lui $[[REG1:[0-9]+]], 16339
-; CHECK: ori $[[REG2:[0-9]+]], $[[REG1]], 46662
-; CHECK: mtc1 $[[REG2]], $f[[REG3:[0-9]+]]
-; CHECK: lw $[[REG4:[0-9]+]], %got(f)(${{[0-9]+}})
-; CHECK: swc1 $f[[REG3]], 0($[[REG4]])
-; CHECK: .end f1
-
-}
-
-; Function Attrs: nounwind
-define void @d1() #0 {
-entry:
- store double 1.234567e+00, double* @de, align 8
-; mip32r2: .ent d1
-; mips32r2: lui $[[REG1a:[0-9]+]], 16371
-; mips32r2: ori $[[REG2a:[0-9]+]], $[[REG1a]], 49353
-; mips32r2: lui $[[REG1b:[0-9]+]], 21403
-; mips32r2: ori $[[REG2b:[0-9]+]], $[[REG1b]], 34951
-; mips32r2: mtc1 $[[REG2b]], $f[[REG3:[0-9]+]]
-; mips32r2: mthc1 $[[REG2a]], $f[[REG3]]
-; mips32r2: sdc1 $f[[REG3]], 0(${{[0-9]+}})
-; mips32r2: .end d1
-; mips32: .ent d1
-; mips32: lui $[[REG1a:[0-9]+]], 16371
-; mips32: ori $[[REG2a:[0-9]+]], $[[REG1a]], 49353
-; mips32: lui $[[REG1b:[0-9]+]], 21403
-; mips32: ori $[[REG2b:[0-9]+]], $[[REG1b]], 34951
-; mips32: mtc1 $[[REG2b]], $f[[REG3:[0-9]+]]
-; mips32: mtc1 $[[REG2a]], $f{{[0-9]+}}
-; mips32: sdc1 $f[[REG3]], 0(${{[0-9]+}})
-; mips32: .end d1
-
- ret void
-}
-
-attributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
diff --git a/test/CodeGen/Mips/Fast-ISel/simplestorei.ll b/test/CodeGen/Mips/Fast-ISel/simplestorei.ll
deleted file mode 100644
index c4a8e55425b8..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/simplestorei.ll
+++ /dev/null
@@ -1,68 +0,0 @@
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32r2 \
-; RUN: < %s | FileCheck %s
-; RUN: llc -march=mipsel -relocation-model=pic -O0 -fast-isel-abort=3 -mcpu=mips32 \
-; RUN: < %s | FileCheck %s
-
-@ijk = external global i32
-
-; Function Attrs: nounwind
-define void @si2_1() #0 {
-entry:
- store i32 32767, i32* @ijk, align 4
-; CHECK: .ent si2_1
-; CHECK: addiu $[[REG1:[0-9]+]], $zero, 32767
-; CHECK: lw $[[REG2:[0-9]+]], %got(ijk)(${{[0-9]+}})
-; CHECK: sw $[[REG1]], 0($[[REG2]])
-
- ret void
-}
-
-; Function Attrs: nounwind
-define void @si2_2() #0 {
-entry:
- store i32 -32768, i32* @ijk, align 4
-; CHECK: .ent si2_2
-; CHECK: lui $[[REG1:[0-9]+]], 65535
-; CHECK: ori $[[REG2:[0-9]+]], $[[REG1]], 32768
-; CHECK: lw $[[REG3:[0-9]+]], %got(ijk)(${{[0-9]+}})
-; CHECK: sw $[[REG2]], 0($[[REG3]])
- ret void
-}
-
-; Function Attrs: nounwind
-define void @ui2_1() #0 {
-entry:
- store i32 65535, i32* @ijk, align 4
-; CHECK: .ent ui2_1
-; CHECK: ori $[[REG1:[0-9]+]], $zero, 65535
-; CHECK: lw $[[REG2:[0-9]+]], %got(ijk)(${{[0-9]+}})
-; CHECK: sw $[[REG1]], 0($[[REG2]])
- ret void
-}
-
-; Function Attrs: nounwind
-define void @ui4_1() #0 {
-entry:
- store i32 983040, i32* @ijk, align 4
-; CHECK: .ent ui4_1
-; CHECK: lui $[[REG1:[0-9]+]], 15
-; CHECK: lw $[[REG2:[0-9]+]], %got(ijk)(${{[0-9]+}})
-; CHECK: sw $[[REG1]], 0($[[REG2]])
- ret void
-}
-
-; Function Attrs: nounwind
-define void @ui4_2() #0 {
-entry:
- store i32 719566, i32* @ijk, align 4
-; CHECK: .ent ui4_2
-; CHECK: lui $[[REG1:[0-9]+]], 10
-; CHECK: ori $[[REG1]], $[[REG1]], 64206
-; CHECK: lw $[[REG2:[0-9]+]], %got(ijk)(${{[0-9]+}})
-; CHECK: sw $[[REG1]], 0($[[REG2]])
- ret void
-}
-
-attributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
-
-
diff --git a/test/CodeGen/Mips/Fast-ISel/stackloadstore.ll b/test/CodeGen/Mips/Fast-ISel/stackloadstore.ll
deleted file mode 100644
index 421f8ff2dba0..000000000000
--- a/test/CodeGen/Mips/Fast-ISel/stackloadstore.ll
+++ /dev/null
@@ -1,18 +0,0 @@
-; RUN: llc < %s -march=mipsel -mcpu=mips32 -fast-isel -disable-fp-elim -relocation-model=pic < %s
-
-; Test that negative array access don't crash constant synthesis when fast isel
-; generates negative offsets.
-
-define i16 @test() {
- %a = alloca [4 x i16], align 4
- %arrayidx = getelementptr inbounds [4 x i16], [4 x i16]* %a, i32 0, i32 -2
- %b = load i16, i16* %arrayidx, align 2
- ret i16 %b
-}
-
-define void @test2() {
- %a = alloca [4 x i16], align 4
- %arrayidx = getelementptr inbounds [4 x i16], [4 x i16]* %a, i32 0, i32 -2
- store i16 2, i16* %arrayidx, align 2
- ret void
-}