Jiangning Liu | 40c1b35 | 2015-01-05 10:08:58 +0000 | [diff] [blame] | 1 | target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" |
| 2 | |
| 3 | ; RUN: opt < %s -S -loop-vectorize -debug-only=loop-vectorize 2>&1 | FileCheck %s |
Michael Kuperstein | 6ae456b | 2015-01-05 12:34:01 +0000 | [diff] [blame] | 4 | ; REQUIRES: asserts |
Jiangning Liu | 40c1b35 | 2015-01-05 10:08:58 +0000 | [diff] [blame] | 5 | ; CHECK: LV: Can't vectorize due to memory conflicts |
| 6 | |
| 7 | define void @test_loop_novect(double** %arr, i64 %n) { |
| 8 | for.body.lr.ph: |
| 9 | %t = load double** %arr, align 8 |
| 10 | br label %for.body |
| 11 | |
| 12 | for.body: ; preds = %for.body, %for.body.lr.ph |
| 13 | %i = phi i64 [ 0, %for.body.lr.ph ], [ %i.next, %for.body ] |
David Blaikie | 79e6c74 | 2015-02-27 19:29:02 +0000 | [diff] [blame^] | 14 | %a = getelementptr inbounds double, double* %t, i64 %i |
Jiangning Liu | 40c1b35 | 2015-01-05 10:08:58 +0000 | [diff] [blame] | 15 | %i.next = add nuw nsw i64 %i, 1 |
David Blaikie | 79e6c74 | 2015-02-27 19:29:02 +0000 | [diff] [blame^] | 16 | %a.next = getelementptr inbounds double, double* %t, i64 %i.next |
Jiangning Liu | 40c1b35 | 2015-01-05 10:08:58 +0000 | [diff] [blame] | 17 | %t1 = load double* %a, align 8 |
| 18 | %t2 = load double* %a.next, align 8 |
| 19 | store double %t1, double* %a.next, align 8 |
| 20 | store double %t2, double* %a, align 8 |
| 21 | %c = icmp eq i64 %i, %n |
| 22 | br i1 %c, label %final, label %for.body |
| 23 | |
| 24 | final: ; preds = %for.body |
| 25 | ret void |
| 26 | } |