comparison test/CodeGen/X86/scalar_widen_div.ll @ 95:afa8332a0e37 LLVM3.8

LLVM 3.8
author Kaito Tokumori <e105711@ie.u-ryukyu.ac.jp>
date Tue, 13 Oct 2015 17:48:58 +0900
parents 95c75e76d11b
children 803732b1fca8
comparison
equal deleted inserted replaced
84:f3e34b893a5f 95:afa8332a0e37
15 %qdest.addr = alloca <2 x i32> addrspace(1)*, align 4 15 %qdest.addr = alloca <2 x i32> addrspace(1)*, align 4
16 %index = alloca i32, align 4 16 %index = alloca i32, align 4
17 store <2 x i32> addrspace(1)* %nsource, <2 x i32> addrspace(1)** %nsource.addr 17 store <2 x i32> addrspace(1)* %nsource, <2 x i32> addrspace(1)** %nsource.addr
18 store <2 x i32> addrspace(1)* %dsource, <2 x i32> addrspace(1)** %dsource.addr 18 store <2 x i32> addrspace(1)* %dsource, <2 x i32> addrspace(1)** %dsource.addr
19 store <2 x i32> addrspace(1)* %qdest, <2 x i32> addrspace(1)** %qdest.addr 19 store <2 x i32> addrspace(1)* %qdest, <2 x i32> addrspace(1)** %qdest.addr
20 %tmp = load <2 x i32> addrspace(1)** %qdest.addr 20 %tmp = load <2 x i32> addrspace(1)*, <2 x i32> addrspace(1)** %qdest.addr
21 %tmp1 = load i32* %index 21 %tmp1 = load i32, i32* %index
22 %arrayidx = getelementptr <2 x i32> addrspace(1)* %tmp, i32 %tmp1 22 %arrayidx = getelementptr <2 x i32>, <2 x i32> addrspace(1)* %tmp, i32 %tmp1
23 %tmp2 = load <2 x i32> addrspace(1)** %nsource.addr 23 %tmp2 = load <2 x i32> addrspace(1)*, <2 x i32> addrspace(1)** %nsource.addr
24 %tmp3 = load i32* %index 24 %tmp3 = load i32, i32* %index
25 %arrayidx4 = getelementptr <2 x i32> addrspace(1)* %tmp2, i32 %tmp3 25 %arrayidx4 = getelementptr <2 x i32>, <2 x i32> addrspace(1)* %tmp2, i32 %tmp3
26 %tmp5 = load <2 x i32> addrspace(1)* %arrayidx4 26 %tmp5 = load <2 x i32>, <2 x i32> addrspace(1)* %arrayidx4
27 %tmp6 = load <2 x i32> addrspace(1)** %dsource.addr 27 %tmp6 = load <2 x i32> addrspace(1)*, <2 x i32> addrspace(1)** %dsource.addr
28 %tmp7 = load i32* %index 28 %tmp7 = load i32, i32* %index
29 %arrayidx8 = getelementptr <2 x i32> addrspace(1)* %tmp6, i32 %tmp7 29 %arrayidx8 = getelementptr <2 x i32>, <2 x i32> addrspace(1)* %tmp6, i32 %tmp7
30 %tmp9 = load <2 x i32> addrspace(1)* %arrayidx8 30 %tmp9 = load <2 x i32>, <2 x i32> addrspace(1)* %arrayidx8
31 %tmp10 = sdiv <2 x i32> %tmp5, %tmp9 31 %tmp10 = sdiv <2 x i32> %tmp5, %tmp9
32 store <2 x i32> %tmp10, <2 x i32> addrspace(1)* %arrayidx 32 store <2 x i32> %tmp10, <2 x i32> addrspace(1)* %arrayidx
33 ret void 33 ret void
34 } 34 }
35 35
178 bb.nph: 178 bb.nph:
179 br label %for.body 179 br label %for.body
180 180
181 for.body: 181 for.body:
182 %i.014 = phi i32 [ 0, %bb.nph ], [ %inc, %for.body ] 182 %i.014 = phi i32 [ 0, %bb.nph ], [ %inc, %for.body ]
183 %arrayidx11 = getelementptr <3 x i32>* %dest, i32 %i.014 183 %arrayidx11 = getelementptr <3 x i32>, <3 x i32>* %dest, i32 %i.014
184 %tmp4 = load <3 x i32>* %arrayidx11 ; <<3 x i32>> [#uses=1] 184 %tmp4 = load <3 x i32>, <3 x i32>* %arrayidx11 ; <<3 x i32>> [#uses=1]
185 %arrayidx7 = getelementptr inbounds <3 x i32>* %old, i32 %i.014 185 %arrayidx7 = getelementptr inbounds <3 x i32>, <3 x i32>* %old, i32 %i.014
186 %tmp8 = load <3 x i32>* %arrayidx7 ; <<3 x i32>> [#uses=1] 186 %tmp8 = load <3 x i32>, <3 x i32>* %arrayidx7 ; <<3 x i32>> [#uses=1]
187 %div = sdiv <3 x i32> %tmp4, %tmp8 187 %div = sdiv <3 x i32> %tmp4, %tmp8
188 store <3 x i32> %div, <3 x i32>* %arrayidx11 188 store <3 x i32> %div, <3 x i32>* %arrayidx11
189 %inc = add nsw i32 %i.014, 1 189 %inc = add nsw i32 %i.014, 1
190 %exitcond = icmp eq i32 %inc, %n 190 %exitcond = icmp eq i32 %inc, %n
191 br i1 %exitcond, label %for.end, label %for.body 191 br i1 %exitcond, label %for.end, label %for.body