~ubuntu-branches/ubuntu/trusty/llvm-toolchain-snapshot/trusty-201310232150

« back to all changes in this revision

Viewing changes to test/Transforms/LoopVectorize/intrinsic.ll

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2013-05-27 15:01:57 UTC
  • mfrom: (0.10.1) (0.9.1) (0.8.1) (0.7.1) (0.6.1) (0.5.2)
  • Revision ID: package-import@ubuntu.com-20130527150157-tdkrsjpuvht7v0qx
Tags: 1:3.4~svn182733-1~exp1
* New snapshot release (3.4 release)
* Add a symlink of libLLVM-3.4.so.1 to usr/lib/llvm-3.4/lib/libLLVM-3.4.so
    to fix make the llvm-config-3.4 --libdir work (Closes: #708677)
  * Various packages rename to allow co installations:
    * libclang1 => libclang1-3.4
    * libclang1-dbg => libclang1-3.4-dbg
    * libclang-dev => libclang-3.4-dev
    * libclang-common-dev => libclang-common-3.4-dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
14
14
for.body:                                         ; preds = %entry, %for.body
15
15
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
16
16
  %arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
17
 
  %0 = load float* %arrayidx, align 4, !tbaa !0
 
17
  %0 = load float* %arrayidx, align 4
18
18
  %call = tail call float @llvm.sqrt.f32(float %0) nounwind readnone
19
19
  %arrayidx2 = getelementptr inbounds float* %x, i64 %indvars.iv
20
 
  store float %call, float* %arrayidx2, align 4, !tbaa !0
 
20
  store float %call, float* %arrayidx2, align 4
21
21
  %indvars.iv.next = add i64 %indvars.iv, 1
22
22
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
23
23
  %exitcond = icmp eq i32 %lftr.wideiv, %n
40
40
for.body:                                         ; preds = %entry, %for.body
41
41
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
42
42
  %arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
43
 
  %0 = load double* %arrayidx, align 8, !tbaa !3
 
43
  %0 = load double* %arrayidx, align 8
44
44
  %call = tail call double @llvm.sqrt.f64(double %0) nounwind readnone
45
45
  %arrayidx2 = getelementptr inbounds double* %x, i64 %indvars.iv
46
 
  store double %call, double* %arrayidx2, align 8, !tbaa !3
 
46
  store double %call, double* %arrayidx2, align 8
47
47
  %indvars.iv.next = add i64 %indvars.iv, 1
48
48
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
49
49
  %exitcond = icmp eq i32 %lftr.wideiv, %n
66
66
for.body:                                         ; preds = %entry, %for.body
67
67
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
68
68
  %arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
69
 
  %0 = load float* %arrayidx, align 4, !tbaa !0
 
69
  %0 = load float* %arrayidx, align 4
70
70
  %call = tail call float @llvm.sin.f32(float %0) nounwind readnone
71
71
  %arrayidx2 = getelementptr inbounds float* %x, i64 %indvars.iv
72
 
  store float %call, float* %arrayidx2, align 4, !tbaa !0
 
72
  store float %call, float* %arrayidx2, align 4
73
73
  %indvars.iv.next = add i64 %indvars.iv, 1
74
74
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
75
75
  %exitcond = icmp eq i32 %lftr.wideiv, %n
92
92
for.body:                                         ; preds = %entry, %for.body
93
93
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
94
94
  %arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
95
 
  %0 = load double* %arrayidx, align 8, !tbaa !3
 
95
  %0 = load double* %arrayidx, align 8
96
96
  %call = tail call double @llvm.sin.f64(double %0) nounwind readnone
97
97
  %arrayidx2 = getelementptr inbounds double* %x, i64 %indvars.iv
98
 
  store double %call, double* %arrayidx2, align 8, !tbaa !3
 
98
  store double %call, double* %arrayidx2, align 8
99
99
  %indvars.iv.next = add i64 %indvars.iv, 1
100
100
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
101
101
  %exitcond = icmp eq i32 %lftr.wideiv, %n
118
118
for.body:                                         ; preds = %entry, %for.body
119
119
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
120
120
  %arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
121
 
  %0 = load float* %arrayidx, align 4, !tbaa !0
 
121
  %0 = load float* %arrayidx, align 4
122
122
  %call = tail call float @llvm.cos.f32(float %0) nounwind readnone
123
123
  %arrayidx2 = getelementptr inbounds float* %x, i64 %indvars.iv
124
 
  store float %call, float* %arrayidx2, align 4, !tbaa !0
 
124
  store float %call, float* %arrayidx2, align 4
125
125
  %indvars.iv.next = add i64 %indvars.iv, 1
126
126
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
127
127
  %exitcond = icmp eq i32 %lftr.wideiv, %n
144
144
for.body:                                         ; preds = %entry, %for.body
145
145
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
146
146
  %arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
147
 
  %0 = load double* %arrayidx, align 8, !tbaa !3
 
147
  %0 = load double* %arrayidx, align 8
148
148
  %call = tail call double @llvm.cos.f64(double %0) nounwind readnone
149
149
  %arrayidx2 = getelementptr inbounds double* %x, i64 %indvars.iv
150
 
  store double %call, double* %arrayidx2, align 8, !tbaa !3
 
150
  store double %call, double* %arrayidx2, align 8
151
151
  %indvars.iv.next = add i64 %indvars.iv, 1
152
152
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
153
153
  %exitcond = icmp eq i32 %lftr.wideiv, %n
170
170
for.body:                                         ; preds = %entry, %for.body
171
171
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
172
172
  %arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
173
 
  %0 = load float* %arrayidx, align 4, !tbaa !0
 
173
  %0 = load float* %arrayidx, align 4
174
174
  %call = tail call float @llvm.exp.f32(float %0) nounwind readnone
175
175
  %arrayidx2 = getelementptr inbounds float* %x, i64 %indvars.iv
176
 
  store float %call, float* %arrayidx2, align 4, !tbaa !0
 
176
  store float %call, float* %arrayidx2, align 4
177
177
  %indvars.iv.next = add i64 %indvars.iv, 1
178
178
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
179
179
  %exitcond = icmp eq i32 %lftr.wideiv, %n
196
196
for.body:                                         ; preds = %entry, %for.body
197
197
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
198
198
  %arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
199
 
  %0 = load double* %arrayidx, align 8, !tbaa !3
 
199
  %0 = load double* %arrayidx, align 8
200
200
  %call = tail call double @llvm.exp.f64(double %0) nounwind readnone
201
201
  %arrayidx2 = getelementptr inbounds double* %x, i64 %indvars.iv
202
 
  store double %call, double* %arrayidx2, align 8, !tbaa !3
 
202
  store double %call, double* %arrayidx2, align 8
203
203
  %indvars.iv.next = add i64 %indvars.iv, 1
204
204
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
205
205
  %exitcond = icmp eq i32 %lftr.wideiv, %n
222
222
for.body:                                         ; preds = %entry, %for.body
223
223
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
224
224
  %arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
225
 
  %0 = load float* %arrayidx, align 4, !tbaa !0
 
225
  %0 = load float* %arrayidx, align 4
226
226
  %call = tail call float @llvm.exp2.f32(float %0) nounwind readnone
227
227
  %arrayidx2 = getelementptr inbounds float* %x, i64 %indvars.iv
228
 
  store float %call, float* %arrayidx2, align 4, !tbaa !0
 
228
  store float %call, float* %arrayidx2, align 4
229
229
  %indvars.iv.next = add i64 %indvars.iv, 1
230
230
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
231
231
  %exitcond = icmp eq i32 %lftr.wideiv, %n
248
248
for.body:                                         ; preds = %entry, %for.body
249
249
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
250
250
  %arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
251
 
  %0 = load double* %arrayidx, align 8, !tbaa !3
 
251
  %0 = load double* %arrayidx, align 8
252
252
  %call = tail call double @llvm.exp2.f64(double %0) nounwind readnone
253
253
  %arrayidx2 = getelementptr inbounds double* %x, i64 %indvars.iv
254
 
  store double %call, double* %arrayidx2, align 8, !tbaa !3
 
254
  store double %call, double* %arrayidx2, align 8
255
255
  %indvars.iv.next = add i64 %indvars.iv, 1
256
256
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
257
257
  %exitcond = icmp eq i32 %lftr.wideiv, %n
274
274
for.body:                                         ; preds = %entry, %for.body
275
275
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
276
276
  %arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
277
 
  %0 = load float* %arrayidx, align 4, !tbaa !0
 
277
  %0 = load float* %arrayidx, align 4
278
278
  %call = tail call float @llvm.log.f32(float %0) nounwind readnone
279
279
  %arrayidx2 = getelementptr inbounds float* %x, i64 %indvars.iv
280
 
  store float %call, float* %arrayidx2, align 4, !tbaa !0
 
280
  store float %call, float* %arrayidx2, align 4
281
281
  %indvars.iv.next = add i64 %indvars.iv, 1
282
282
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
283
283
  %exitcond = icmp eq i32 %lftr.wideiv, %n
300
300
for.body:                                         ; preds = %entry, %for.body
301
301
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
302
302
  %arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
303
 
  %0 = load double* %arrayidx, align 8, !tbaa !3
 
303
  %0 = load double* %arrayidx, align 8
304
304
  %call = tail call double @llvm.log.f64(double %0) nounwind readnone
305
305
  %arrayidx2 = getelementptr inbounds double* %x, i64 %indvars.iv
306
 
  store double %call, double* %arrayidx2, align 8, !tbaa !3
 
306
  store double %call, double* %arrayidx2, align 8
307
307
  %indvars.iv.next = add i64 %indvars.iv, 1
308
308
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
309
309
  %exitcond = icmp eq i32 %lftr.wideiv, %n
326
326
for.body:                                         ; preds = %entry, %for.body
327
327
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
328
328
  %arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
329
 
  %0 = load float* %arrayidx, align 4, !tbaa !0
 
329
  %0 = load float* %arrayidx, align 4
330
330
  %call = tail call float @llvm.log10.f32(float %0) nounwind readnone
331
331
  %arrayidx2 = getelementptr inbounds float* %x, i64 %indvars.iv
332
 
  store float %call, float* %arrayidx2, align 4, !tbaa !0
 
332
  store float %call, float* %arrayidx2, align 4
333
333
  %indvars.iv.next = add i64 %indvars.iv, 1
334
334
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
335
335
  %exitcond = icmp eq i32 %lftr.wideiv, %n
352
352
for.body:                                         ; preds = %entry, %for.body
353
353
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
354
354
  %arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
355
 
  %0 = load double* %arrayidx, align 8, !tbaa !3
 
355
  %0 = load double* %arrayidx, align 8
356
356
  %call = tail call double @llvm.log10.f64(double %0) nounwind readnone
357
357
  %arrayidx2 = getelementptr inbounds double* %x, i64 %indvars.iv
358
 
  store double %call, double* %arrayidx2, align 8, !tbaa !3
 
358
  store double %call, double* %arrayidx2, align 8
359
359
  %indvars.iv.next = add i64 %indvars.iv, 1
360
360
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
361
361
  %exitcond = icmp eq i32 %lftr.wideiv, %n
378
378
for.body:                                         ; preds = %entry, %for.body
379
379
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
380
380
  %arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
381
 
  %0 = load float* %arrayidx, align 4, !tbaa !0
 
381
  %0 = load float* %arrayidx, align 4
382
382
  %call = tail call float @llvm.log2.f32(float %0) nounwind readnone
383
383
  %arrayidx2 = getelementptr inbounds float* %x, i64 %indvars.iv
384
 
  store float %call, float* %arrayidx2, align 4, !tbaa !0
 
384
  store float %call, float* %arrayidx2, align 4
385
385
  %indvars.iv.next = add i64 %indvars.iv, 1
386
386
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
387
387
  %exitcond = icmp eq i32 %lftr.wideiv, %n
404
404
for.body:                                         ; preds = %entry, %for.body
405
405
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
406
406
  %arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
407
 
  %0 = load double* %arrayidx, align 8, !tbaa !3
 
407
  %0 = load double* %arrayidx, align 8
408
408
  %call = tail call double @llvm.log2.f64(double %0) nounwind readnone
409
409
  %arrayidx2 = getelementptr inbounds double* %x, i64 %indvars.iv
410
 
  store double %call, double* %arrayidx2, align 8, !tbaa !3
 
410
  store double %call, double* %arrayidx2, align 8
411
411
  %indvars.iv.next = add i64 %indvars.iv, 1
412
412
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
413
413
  %exitcond = icmp eq i32 %lftr.wideiv, %n
430
430
for.body:                                         ; preds = %entry, %for.body
431
431
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
432
432
  %arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
433
 
  %0 = load float* %arrayidx, align 4, !tbaa !0
 
433
  %0 = load float* %arrayidx, align 4
434
434
  %call = tail call float @llvm.fabs.f32(float %0) nounwind readnone
435
435
  %arrayidx2 = getelementptr inbounds float* %x, i64 %indvars.iv
436
 
  store float %call, float* %arrayidx2, align 4, !tbaa !0
 
436
  store float %call, float* %arrayidx2, align 4
437
437
  %indvars.iv.next = add i64 %indvars.iv, 1
438
438
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
439
439
  %exitcond = icmp eq i32 %lftr.wideiv, %n
453
453
for.body:                                         ; preds = %entry, %for.body
454
454
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
455
455
  %arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
456
 
  %0 = load double* %arrayidx, align 8, !tbaa !3
 
456
  %0 = load double* %arrayidx, align 8
457
457
  %call = tail call double @llvm.fabs(double %0) nounwind readnone
458
458
  %arrayidx2 = getelementptr inbounds double* %x, i64 %indvars.iv
459
 
  store double %call, double* %arrayidx2, align 8, !tbaa !3
 
459
  store double %call, double* %arrayidx2, align 8
460
460
  %indvars.iv.next = add i64 %indvars.iv, 1
461
461
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
462
462
  %exitcond = icmp eq i32 %lftr.wideiv, %n
479
479
for.body:                                         ; preds = %entry, %for.body
480
480
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
481
481
  %arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
482
 
  %0 = load float* %arrayidx, align 4, !tbaa !0
 
482
  %0 = load float* %arrayidx, align 4
483
483
  %call = tail call float @llvm.floor.f32(float %0) nounwind readnone
484
484
  %arrayidx2 = getelementptr inbounds float* %x, i64 %indvars.iv
485
 
  store float %call, float* %arrayidx2, align 4, !tbaa !0
 
485
  store float %call, float* %arrayidx2, align 4
486
486
  %indvars.iv.next = add i64 %indvars.iv, 1
487
487
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
488
488
  %exitcond = icmp eq i32 %lftr.wideiv, %n
505
505
for.body:                                         ; preds = %entry, %for.body
506
506
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
507
507
  %arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
508
 
  %0 = load double* %arrayidx, align 8, !tbaa !3
 
508
  %0 = load double* %arrayidx, align 8
509
509
  %call = tail call double @llvm.floor.f64(double %0) nounwind readnone
510
510
  %arrayidx2 = getelementptr inbounds double* %x, i64 %indvars.iv
511
 
  store double %call, double* %arrayidx2, align 8, !tbaa !3
 
511
  store double %call, double* %arrayidx2, align 8
512
512
  %indvars.iv.next = add i64 %indvars.iv, 1
513
513
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
514
514
  %exitcond = icmp eq i32 %lftr.wideiv, %n
531
531
for.body:                                         ; preds = %entry, %for.body
532
532
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
533
533
  %arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
534
 
  %0 = load float* %arrayidx, align 4, !tbaa !0
 
534
  %0 = load float* %arrayidx, align 4
535
535
  %call = tail call float @llvm.ceil.f32(float %0) nounwind readnone
536
536
  %arrayidx2 = getelementptr inbounds float* %x, i64 %indvars.iv
537
 
  store float %call, float* %arrayidx2, align 4, !tbaa !0
 
537
  store float %call, float* %arrayidx2, align 4
538
538
  %indvars.iv.next = add i64 %indvars.iv, 1
539
539
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
540
540
  %exitcond = icmp eq i32 %lftr.wideiv, %n
557
557
for.body:                                         ; preds = %entry, %for.body
558
558
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
559
559
  %arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
560
 
  %0 = load double* %arrayidx, align 8, !tbaa !3
 
560
  %0 = load double* %arrayidx, align 8
561
561
  %call = tail call double @llvm.ceil.f64(double %0) nounwind readnone
562
562
  %arrayidx2 = getelementptr inbounds double* %x, i64 %indvars.iv
563
 
  store double %call, double* %arrayidx2, align 8, !tbaa !3
 
563
  store double %call, double* %arrayidx2, align 8
564
564
  %indvars.iv.next = add i64 %indvars.iv, 1
565
565
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
566
566
  %exitcond = icmp eq i32 %lftr.wideiv, %n
583
583
for.body:                                         ; preds = %entry, %for.body
584
584
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
585
585
  %arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
586
 
  %0 = load float* %arrayidx, align 4, !tbaa !0
 
586
  %0 = load float* %arrayidx, align 4
587
587
  %call = tail call float @llvm.trunc.f32(float %0) nounwind readnone
588
588
  %arrayidx2 = getelementptr inbounds float* %x, i64 %indvars.iv
589
 
  store float %call, float* %arrayidx2, align 4, !tbaa !0
 
589
  store float %call, float* %arrayidx2, align 4
590
590
  %indvars.iv.next = add i64 %indvars.iv, 1
591
591
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
592
592
  %exitcond = icmp eq i32 %lftr.wideiv, %n
609
609
for.body:                                         ; preds = %entry, %for.body
610
610
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
611
611
  %arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
612
 
  %0 = load double* %arrayidx, align 8, !tbaa !3
 
612
  %0 = load double* %arrayidx, align 8
613
613
  %call = tail call double @llvm.trunc.f64(double %0) nounwind readnone
614
614
  %arrayidx2 = getelementptr inbounds double* %x, i64 %indvars.iv
615
 
  store double %call, double* %arrayidx2, align 8, !tbaa !3
 
615
  store double %call, double* %arrayidx2, align 8
616
616
  %indvars.iv.next = add i64 %indvars.iv, 1
617
617
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
618
618
  %exitcond = icmp eq i32 %lftr.wideiv, %n
635
635
for.body:                                         ; preds = %entry, %for.body
636
636
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
637
637
  %arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
638
 
  %0 = load float* %arrayidx, align 4, !tbaa !0
 
638
  %0 = load float* %arrayidx, align 4
639
639
  %call = tail call float @llvm.rint.f32(float %0) nounwind readnone
640
640
  %arrayidx2 = getelementptr inbounds float* %x, i64 %indvars.iv
641
 
  store float %call, float* %arrayidx2, align 4, !tbaa !0
 
641
  store float %call, float* %arrayidx2, align 4
642
642
  %indvars.iv.next = add i64 %indvars.iv, 1
643
643
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
644
644
  %exitcond = icmp eq i32 %lftr.wideiv, %n
661
661
for.body:                                         ; preds = %entry, %for.body
662
662
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
663
663
  %arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
664
 
  %0 = load double* %arrayidx, align 8, !tbaa !3
 
664
  %0 = load double* %arrayidx, align 8
665
665
  %call = tail call double @llvm.rint.f64(double %0) nounwind readnone
666
666
  %arrayidx2 = getelementptr inbounds double* %x, i64 %indvars.iv
667
 
  store double %call, double* %arrayidx2, align 8, !tbaa !3
 
667
  store double %call, double* %arrayidx2, align 8
668
668
  %indvars.iv.next = add i64 %indvars.iv, 1
669
669
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
670
670
  %exitcond = icmp eq i32 %lftr.wideiv, %n
687
687
for.body:                                         ; preds = %entry, %for.body
688
688
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
689
689
  %arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
690
 
  %0 = load float* %arrayidx, align 4, !tbaa !0
 
690
  %0 = load float* %arrayidx, align 4
691
691
  %call = tail call float @llvm.nearbyint.f32(float %0) nounwind readnone
692
692
  %arrayidx2 = getelementptr inbounds float* %x, i64 %indvars.iv
693
 
  store float %call, float* %arrayidx2, align 4, !tbaa !0
 
693
  store float %call, float* %arrayidx2, align 4
694
694
  %indvars.iv.next = add i64 %indvars.iv, 1
695
695
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
696
696
  %exitcond = icmp eq i32 %lftr.wideiv, %n
713
713
for.body:                                         ; preds = %entry, %for.body
714
714
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
715
715
  %arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
716
 
  %0 = load double* %arrayidx, align 8, !tbaa !3
 
716
  %0 = load double* %arrayidx, align 8
717
717
  %call = tail call double @llvm.nearbyint.f64(double %0) nounwind readnone
718
718
  %arrayidx2 = getelementptr inbounds double* %x, i64 %indvars.iv
719
 
  store double %call, double* %arrayidx2, align 8, !tbaa !3
 
719
  store double %call, double* %arrayidx2, align 8
720
720
  %indvars.iv.next = add i64 %indvars.iv, 1
721
721
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
722
722
  %exitcond = icmp eq i32 %lftr.wideiv, %n
739
739
for.body:                                         ; preds = %entry, %for.body
740
740
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
741
741
  %arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
742
 
  %0 = load float* %arrayidx, align 4, !tbaa !0
 
742
  %0 = load float* %arrayidx, align 4
743
743
  %arrayidx2 = getelementptr inbounds float* %w, i64 %indvars.iv
744
 
  %1 = load float* %arrayidx2, align 4, !tbaa !0
 
744
  %1 = load float* %arrayidx2, align 4
745
745
  %arrayidx4 = getelementptr inbounds float* %z, i64 %indvars.iv
746
 
  %2 = load float* %arrayidx4, align 4, !tbaa !0
 
746
  %2 = load float* %arrayidx4, align 4
747
747
  %3 = tail call float @llvm.fma.f32(float %0, float %2, float %1)
748
748
  %arrayidx6 = getelementptr inbounds float* %x, i64 %indvars.iv
749
 
  store float %3, float* %arrayidx6, align 4, !tbaa !0
 
749
  store float %3, float* %arrayidx6, align 4
750
750
  %indvars.iv.next = add i64 %indvars.iv, 1
751
751
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
752
752
  %exitcond = icmp eq i32 %lftr.wideiv, %n
769
769
for.body:                                         ; preds = %entry, %for.body
770
770
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
771
771
  %arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
772
 
  %0 = load double* %arrayidx, align 8, !tbaa !3
 
772
  %0 = load double* %arrayidx, align 8
773
773
  %arrayidx2 = getelementptr inbounds double* %w, i64 %indvars.iv
774
 
  %1 = load double* %arrayidx2, align 8, !tbaa !3
 
774
  %1 = load double* %arrayidx2, align 8
775
775
  %arrayidx4 = getelementptr inbounds double* %z, i64 %indvars.iv
776
 
  %2 = load double* %arrayidx4, align 8, !tbaa !3
 
776
  %2 = load double* %arrayidx4, align 8
777
777
  %3 = tail call double @llvm.fma.f64(double %0, double %2, double %1)
778
778
  %arrayidx6 = getelementptr inbounds double* %x, i64 %indvars.iv
779
 
  store double %3, double* %arrayidx6, align 8, !tbaa !3
 
779
  store double %3, double* %arrayidx6, align 8
780
780
  %indvars.iv.next = add i64 %indvars.iv, 1
781
781
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
782
782
  %exitcond = icmp eq i32 %lftr.wideiv, %n
799
799
for.body:                                         ; preds = %entry, %for.body
800
800
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
801
801
  %arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
802
 
  %0 = load float* %arrayidx, align 4, !tbaa !0
 
802
  %0 = load float* %arrayidx, align 4
803
803
  %arrayidx2 = getelementptr inbounds float* %w, i64 %indvars.iv
804
 
  %1 = load float* %arrayidx2, align 4, !tbaa !0
 
804
  %1 = load float* %arrayidx2, align 4
805
805
  %arrayidx4 = getelementptr inbounds float* %z, i64 %indvars.iv
806
 
  %2 = load float* %arrayidx4, align 4, !tbaa !0
 
806
  %2 = load float* %arrayidx4, align 4
807
807
  %3 = tail call float @llvm.fmuladd.f32(float %0, float %2, float %1)
808
808
  %arrayidx6 = getelementptr inbounds float* %x, i64 %indvars.iv
809
 
  store float %3, float* %arrayidx6, align 4, !tbaa !0
 
809
  store float %3, float* %arrayidx6, align 4
810
810
  %indvars.iv.next = add i64 %indvars.iv, 1
811
811
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
812
812
  %exitcond = icmp eq i32 %lftr.wideiv, %n
829
829
for.body:                                         ; preds = %entry, %for.body
830
830
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
831
831
  %arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
832
 
  %0 = load double* %arrayidx, align 8, !tbaa !3
 
832
  %0 = load double* %arrayidx, align 8
833
833
  %arrayidx2 = getelementptr inbounds double* %w, i64 %indvars.iv
834
 
  %1 = load double* %arrayidx2, align 8, !tbaa !3
 
834
  %1 = load double* %arrayidx2, align 8
835
835
  %arrayidx4 = getelementptr inbounds double* %z, i64 %indvars.iv
836
 
  %2 = load double* %arrayidx4, align 8, !tbaa !3
 
836
  %2 = load double* %arrayidx4, align 8
837
837
  %3 = tail call double @llvm.fmuladd.f64(double %0, double %2, double %1)
838
838
  %arrayidx6 = getelementptr inbounds double* %x, i64 %indvars.iv
839
 
  store double %3, double* %arrayidx6, align 8, !tbaa !3
 
839
  store double %3, double* %arrayidx6, align 8
840
840
  %indvars.iv.next = add i64 %indvars.iv, 1
841
841
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
842
842
  %exitcond = icmp eq i32 %lftr.wideiv, %n
859
859
for.body:                                         ; preds = %entry, %for.body
860
860
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
861
861
  %arrayidx = getelementptr inbounds float* %y, i64 %indvars.iv
862
 
  %0 = load float* %arrayidx, align 4, !tbaa !0
 
862
  %0 = load float* %arrayidx, align 4
863
863
  %arrayidx2 = getelementptr inbounds float* %z, i64 %indvars.iv
864
 
  %1 = load float* %arrayidx2, align 4, !tbaa !0
 
864
  %1 = load float* %arrayidx2, align 4
865
865
  %call = tail call float @llvm.pow.f32(float %0, float %1) nounwind readnone
866
866
  %arrayidx4 = getelementptr inbounds float* %x, i64 %indvars.iv
867
 
  store float %call, float* %arrayidx4, align 4, !tbaa !0
 
867
  store float %call, float* %arrayidx4, align 4
868
868
  %indvars.iv.next = add i64 %indvars.iv, 1
869
869
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
870
870
  %exitcond = icmp eq i32 %lftr.wideiv, %n
887
887
for.body:                                         ; preds = %entry, %for.body
888
888
  %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %entry ]
889
889
  %arrayidx = getelementptr inbounds double* %y, i64 %indvars.iv
890
 
  %0 = load double* %arrayidx, align 8, !tbaa !3
 
890
  %0 = load double* %arrayidx, align 8
891
891
  %arrayidx2 = getelementptr inbounds double* %z, i64 %indvars.iv
892
 
  %1 = load double* %arrayidx2, align 8, !tbaa !3
 
892
  %1 = load double* %arrayidx2, align 8
893
893
  %call = tail call double @llvm.pow.f64(double %0, double %1) nounwind readnone
894
894
  %arrayidx4 = getelementptr inbounds double* %x, i64 %indvars.iv
895
 
  store double %call, double* %arrayidx4, align 8, !tbaa !3
 
895
  store double %call, double* %arrayidx4, align 8
896
896
  %indvars.iv.next = add i64 %indvars.iv, 1
897
897
  %lftr.wideiv = trunc i64 %indvars.iv.next to i32
898
898
  %exitcond = icmp eq i32 %lftr.wideiv, %n
927
927
declare float @fabsf(float) nounwind readnone
928
928
 
929
929
declare double @llvm.pow.f64(double, double) nounwind readnone
930
 
 
931
 
!0 = metadata !{metadata !"float", metadata !1}
932
 
!1 = metadata !{metadata !"omnipotent char", metadata !2}
933
 
!2 = metadata !{metadata !"Simple C/C++ TBAA"}
934
 
!3 = metadata !{metadata !"double", metadata !1}
935
 
!4 = metadata !{metadata !"int", metadata !1}