summaryrefslogtreecommitdiff
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/icmpbr1.ll3
-rw-r--r--test/CodeGen/Mips/Fast-ISel/pr40325.ll23
2 files changed, 25 insertions, 1 deletions
diff --git a/test/CodeGen/Mips/Fast-ISel/icmpbr1.ll b/test/CodeGen/Mips/Fast-ISel/icmpbr1.ll
index ef8e1c2b0140..e44ab36532c5 100644
--- a/test/CodeGen/Mips/Fast-ISel/icmpbr1.ll
+++ b/test/CodeGen/Mips/Fast-ISel/icmpbr1.ll
@@ -17,7 +17,8 @@ bb0:
bb1:
; CHECK: # %bb.1: # %bb1
; CHECK-NEXT: lw $[[REG2:[0-9]+]], [[SPILL]]($sp) # 4-byte Folded Reload
-; CHECK-NEXT: bgtz $[[REG2]], $BB0_3
+; CHECK-NEXT: andi $[[REG3:[0-9]+]], $[[REG2]], 1
+; CHECK-NEXT: bgtz $[[REG3]], $BB0_3
br i1 %2, label %bb2, label %bb3
bb2:
; CHECK: $BB0_3: # %bb2
diff --git a/test/CodeGen/Mips/Fast-ISel/pr40325.ll b/test/CodeGen/Mips/Fast-ISel/pr40325.ll
new file mode 100644
index 000000000000..a9ce70fe8afc
--- /dev/null
+++ b/test/CodeGen/Mips/Fast-ISel/pr40325.ll
@@ -0,0 +1,23 @@
+; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
+; RUN: llc -mtriple=mipsel -relocation-model=pic -O0 -mcpu=mips32 < %s | FileCheck %s
+
+define void @test(i32 %x, i1* %p) nounwind {
+; CHECK-LABEL: test:
+; CHECK: # %bb.0:
+; CHECK-NEXT: move $1, $4
+; CHECK-NEXT: andi $4, $4, 1
+; CHECK-NEXT: sb $4, 0($5)
+; CHECK-NEXT: andi $1, $1, 1
+; CHECK-NEXT: bgtz $1, $BB0_1
+; CHECK-NEXT: nop
+; CHECK-NEXT: # %bb.1: # %foo
+; CHECK-NEXT: jr $ra
+; CHECK-NEXT: nop
+ %y = and i32 %x, 1
+ %c = icmp eq i32 %y, 1
+ store i1 %c, i1* %p
+ br i1 %c, label %foo, label %foo
+
+foo:
+ ret void
+}