comparison test/Transforms/LoopVectorize/gep_with_bitcast.ll @ 120:1172e4bd9c6f

update 4.0.0
author mir3636
date Fri, 25 Nov 2016 19:14:25 +0900
parents 7d135dc70f03
children
comparison
equal deleted inserted replaced
101:34baf5011add 120:1172e4bd9c6f
10 ; res[i] = ((unsigned long long)in[i] == 0); 10 ; res[i] = ((unsigned long long)in[i] == 0);
11 ;} 11 ;}
12 12
13 ; CHECK-LABEL: @foo 13 ; CHECK-LABEL: @foo
14 ; CHECK: vector.body 14 ; CHECK: vector.body
15 ; CHECK: %0 = getelementptr inbounds double*, double** %in, i64 %index 15 ; CHECK: %[[IV:.+]] = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
16 ; CHECK: %1 = bitcast double** %0 to <4 x i64>* 16 ; CHECK: %[[v0:.+]] = getelementptr inbounds double*, double** %in, i64 %[[IV]]
17 ; CHECK: %wide.load = load <4 x i64>, <4 x i64>* %1, align 8 17 ; CHECK: %[[v1:.+]] = bitcast double** %[[v0]] to <4 x i64>*
18 ; CHECK: %2 = icmp eq <4 x i64> %wide.load, zeroinitializer 18 ; CHECK: %wide.load = load <4 x i64>, <4 x i64>* %[[v1]], align 8
19 ; CHECK: icmp eq <4 x i64> %wide.load, zeroinitializer
19 ; CHECK: br i1 20 ; CHECK: br i1
20 21
21 define void @foo(double** noalias nocapture readonly %in, double** noalias nocapture readnone %out, i8* noalias nocapture %res) #0 { 22 define void @foo(double** noalias nocapture readonly %in, double** noalias nocapture readnone %out, i8* noalias nocapture %res) #0 {
22 entry: 23 entry:
23 br label %for.body 24 br label %for.body