summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen
diff options
context:
space:
mode:
authorAnton Korobeynikov <anton@korobeynikov.info>2016-08-19 14:07:10 +0000
committerAnton Korobeynikov <anton@korobeynikov.info>2016-08-19 14:07:10 +0000
commit2aae31a945def8be520be5cd05a41f423280b4a2 (patch)
tree75ec7e46a701ba417f03b40f619bc45e2eb0cff7 /llvm/test/CodeGen
parent6421b934ec7c643e14d637bfc69cc5fe7f5e993b (diff)
downloadbcm5719-llvm-2aae31a945def8be520be5cd05a41f423280b4a2.tar.gz
bcm5719-llvm-2aae31a945def8be520be5cd05a41f423280b4a2.zip
Fix PR27500: on MSP430 the branch destination offset is measured in words, not bytes.
In addition, the branch instructions will have proper BB destinations, not offsets, like before. Patch by Vadzim Dambrouski! Differential Revision: https://reviews.llvm.org/D20162 llvm-svn: 279242
Diffstat (limited to 'llvm/test/CodeGen')
-rw-r--r--llvm/test/CodeGen/MSP430/BranchSelector.ll588
1 files changed, 588 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/MSP430/BranchSelector.ll b/llvm/test/CodeGen/MSP430/BranchSelector.ll
new file mode 100644
index 00000000000..4dfd95bf41a
--- /dev/null
+++ b/llvm/test/CodeGen/MSP430/BranchSelector.ll
@@ -0,0 +1,588 @@
+; RUN: llc < %s -march=msp430 | FileCheck %s
+target datalayout = "e-m:e-p:16:16-i32:16:32-a:16-n8:16"
+target triple = "msp430"
+
+@reg = common global i16 0, align 2
+
+define void @WriteBurstPATable(i16 %count) #0 {
+entry:
+ br label %while.cond
+
+while.cond:
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ %v0 = load volatile i16, i16* @reg, align 2
+ %lnot = icmp eq i16 %v0, 0
+
+; This BB should be split and all branches should be expanded.
+; CHECK-LABEL: .LBB0_1:
+; CHECK: jne .LBB0_2
+; CHECK: br #.LBB0_1
+; CHECK: .LBB0_2:
+; CHECK: br #.LBB0_4
+; CHECK: .LBB0_3:
+
+ br i1 %lnot, label %while.cond, label %while.end
+
+while.end:
+ %i.0.i.0.1822 = load volatile i16, i16* @reg, align 1
+ %cmp23 = icmp ult i16 %i.0.i.0.1822, %count
+ br i1 %cmp23, label %for.body, label %for.end
+
+for.body:
+ br label %while.cond6
+
+while.cond6:
+ %0 = load volatile i16, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 19, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ br label %for.inc
+
+for.inc:
+ %1 = load volatile i16, i16* @reg, align 2
+ %cmp = icmp ult i16 %1, %count
+
+; This branch should be expanded.
+; CHECK-LABEL: .LBB0_4:
+; CHECK: jhs .LBB0_5
+; CHECK: br #.LBB0_3
+; CHECK: .LBB0_5:
+
+ br i1 %cmp, label %for.body, label %for.end
+
+for.end:
+ ret void
+}
+
+define void @WriteSinglePATable() #0 {
+entry:
+ br label %begin
+begin:
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ store volatile i16 13, i16* @reg, align 2
+ store volatile i16 17, i16* @reg, align 2
+ store volatile i16 11, i16* @reg, align 2
+ %v2 = load volatile i16, i16* @reg, align 2
+ %lnot = icmp eq i16 %v2, 0
+
+; This branch should not be expanded
+; CHECK-LABEL: .LBB1_1:
+; CHECK: jeq .LBB1_1
+; CHECK: BB#2:
+; CHECK: ret
+ br i1 %lnot, label %begin, label %end
+
+end:
+ ret void
+}
OpenPOWER on IntegriCloud