Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(41)

Unified Diff: tests_lit/llvm2ice_tests/branch-opt.ll

Issue 2275883002: [SubZero] Branch optimization (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Tests added for branch optimization. Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/IceTargetLoweringMIPS32.cpp ('k') | tests_lit/llvm2ice_tests/cond-branch.ll » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests_lit/llvm2ice_tests/branch-opt.ll
diff --git a/tests_lit/llvm2ice_tests/branch-opt.ll b/tests_lit/llvm2ice_tests/branch-opt.ll
index 3bfed0d29fe6af45c6a402ab2dc4fe2292505750..7b42f2d99f87fa2cb141fceb6076d995855311cd 100644
--- a/tests_lit/llvm2ice_tests/branch-opt.ll
+++ b/tests_lit/llvm2ice_tests/branch-opt.ll
@@ -27,6 +27,24 @@
; RUN: --command FileCheck \
; RUN: --check-prefix ARM32OM1 %s
+; TODO(jaydeep.patil): Using --skip-unimplemented for MIPS32
+; RUN: %if --need=target_MIPS32 --need=allow_dump \
+; RUN: --command %p2i --filetype=asm --assemble \
+; RUN: --disassemble --target mips32 -i %s --args -O2 \
+; RUN: --skip-unimplemented \
+; RUN: -allow-externally-defined-symbols \
+; RUN: | %if --need=target_MIPS32 --need=allow_dump \
+; RUN: --command FileCheck --check-prefix MIPS32O2 %s
+
+; RUN: %if --need=target_MIPS32 --need=allow_dump \
+; RUN: --command %p2i --filetype=asm --assemble \
+; RUN: --disassemble --target mips32 -i %s --args -Om1 \
+; RUN: --skip-unimplemented \
+; RUN: -allow-externally-defined-symbols \
+; RUN: | %if --need=target_MIPS32 --need=allow_dump \
+; RUN: --command FileCheck \
+; RUN: --check-prefix MIPS32OM1 %s
+
declare void @dummy()
; An unconditional branch to the next block should be removed.
@@ -59,6 +77,22 @@ next:
; ARM32OM1-NEXT: b
; ARM32OM1-NEXT: bl {{.*}} dummy
+; MIPS32O2-LABEL: testUncondToNextBlock
+; MIPS32O2: jal {{.*}} dummy
+; MIPS32O2-NEXT: nop
+; MIPS32O2-LABEL: <.LtestUncondToNextBlock$next>:
+; MIPS32O2-NEXT: jal {{.*}} dummy
+; MIPS32O2-NEXT: nop
+
+; MIPS32OM1-LABEL: testUncondToNextBlock
+; MIPS32OM1: jal {{.*}} dummy
+; MIPS32OM1-NEXT: nop
+; MIPS32OM1-NEXT: b {{.*}} <.LtestUncondToNextBlock$next>
+; MIPS32OM1-NEXT: nop
+; MIPS32OM1-LABEL: <.LtestUncondToNextBlock$next>:
+; MIPS32OM1-NEXT: jal {{.*}} dummy
+; MIPS32OM1-NEXT: nop
+
; For a conditional branch with a fallthrough to the next block, the
; fallthrough branch should be removed.
define internal void @testCondFallthroughToNextBlock(i32 %arg) {
@@ -112,6 +146,41 @@ target:
; ARM32OM1: bl
; ARM32OM1: bx lr
+; MIPS32O2-LABEL: testCondFallthroughToNextBlock
+; MIPS32O2: li {{.*}},123
+; MIPS32O2: slt {{.*}},{{.*}},{{.*}}
+; MIPS32O2: beqz
+; MIPS32O2: nop
+; MIPS32O2: .LtestCondFallthroughToNextBlock$fallthrough
+; MIPS32O2: jal {{.*}} dummy
+; MIPS32O2: nop
+; MIPS32O2: jr
+; MIPS32O2: nop
+; MIPS32O2: .LtestCondFallthroughToNextBlock$target
+; MIPS32O2: jal {{.*}} dummy
+; MIPS32O2: nop
+; MIPS32O2: jr
+; MIPS32O2: nop
+
+; MIPS32OM1-LABEL: testCondFallthroughToNextBlock
+; MIPS32OM1: li {{.*}},123
+; MIPS32OM1: slt {{.*}},{{.*}},{{.*}}
+; MIPS32OM1: xori {{.*}},{{.*}},{{.*}}
+; MIPS32OM1: beqz
+; MIPS32OM1: nop
+; MIPS32OM1: b
+; MIPS32OM1: nop
+; MIPS32OM1: .LtestCondFallthroughToNextBlock$fallthrough
+; MIPS32OM1: jal {{.*}} dummy
+; MIPS32OM1: nop
+; MIPS32OM1: jr
+; MIPS32OM1: nop
+; MIPS32OM1: .LtestCondFallthroughToNextBlock$target
+; MIPS32OM1: jal {{.*}} dummy
+; MIPS32OM1: nop
+; MIPS32OM1: jr
+; MIPS32OM1: nop
+
; For a conditional branch with the next block as the target and a
; different block as the fallthrough, the branch condition should be
; inverted, the fallthrough block changed to the target, and the
@@ -168,6 +237,41 @@ target:
; ARM32OM1: bl
; ARM32OM1: bx lr
+; MIPS32O2-LABEL: testCondTargetNextBlock
+; MIPS32O2: li {{.*}},123
+; MIPS32O2: slt {{.*}},{{.*}},{{.*}}
+; MIPS32O2: bnez
+; MIPS32O2: nop
+; MIPS32O2: .LtestCondTargetNextBlock$fallthrough
+; MIPS32O2: jal {{.*}} dummy
+; MIPS32O2: nop
+; MIPS32O2: jr
+; MIPS32O2: nop
+; MIPS32O2: .LtestCondTargetNextBlock$target
+; MIPS32O2: jal {{.*}} dummy
+; MIPS32O2: nop
+; MIPS32O2: jr
+; MIPS32O2: nop
+
+; MIPS32OM1-LABEL: testCondTargetNextBlock
+; MIPS32OM1: li {{.*}},123
+; MIPS32OM1: slt {{.*}},{{.*}},{{.*}}
+; MIPS32OM1: xori {{.*}},{{.*}},{{.*}}
+; MIPS32OM1: beqz
+; MIPS32OM1: nop
+; MIPS32OM1: b
+; MIPS32OM1: nop
+; MIPS32OM1: .LtestCondTargetNextBlock$fallthrough
+; MIPS32OM1: jal {{.*}} dummy
+; MIPS32OM1: nop
+; MIPS32OM1: jr
+; MIPS32OM1: nop
+; MIPS32OM1: .LtestCondTargetNextBlock$target
+; MIPS32OM1: jal {{.*}} dummy
+; MIPS32OM1: nop
+; MIPS32OM1: jr
+; MIPS32OM1: nop
+
; Unconditional branches to the block after a contracted block should be
; removed.
define internal void @testUncondToBlockAfterContract() {
@@ -201,3 +305,12 @@ target:
; ARM32OM1: bl {{.*}} dummy
; ARM32OM1-NEXT: b
; ARM32OM1-NEXT: bl {{.*}} dummy
+
+; MIPS32O2-LABEL: testUncondToBlockAfterContract
+; MIPS32O2: jal {{.*}} dummy
+; MIPS32O2: .LtestUncondToBlockAfterContract$target
+
+; MIPS32OM1-LABEL: testUncondToBlockAfterContract
+; MIPS32OM1: jal {{.*}} dummy
+; MIPS32OM1: b
+; MIPS32OM1: .LtestUncondToBlockAfterContract$target
« no previous file with comments | « src/IceTargetLoweringMIPS32.cpp ('k') | tests_lit/llvm2ice_tests/cond-branch.ll » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698