summaryrefslogtreecommitdiff
path: root/test/CodeGen/MSP430
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
commitb8b1bfcdcb2ccef76ece3597105236fb1f930b37 (patch)
tree42a132e07803557f2c32aea5267b7635b0cfd1b1 /test/CodeGen/MSP430
parent8fa77e005c42559d53973c4742b4c983021294b8 (diff)
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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@279242 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/MSP430')
-rw-r--r--test/CodeGen/MSP430/BranchSelector.ll588
1 files changed, 588 insertions, 0 deletions
diff --git a/test/CodeGen/MSP430/BranchSelector.ll b/test/CodeGen/MSP430/BranchSelector.ll
new file mode 100644
index 00000000000..4dfd95bf41a
--- /dev/null
+++ b/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
+}