Adam Nemet | 8b47e0d | 2016-03-22 18:38:15 +0000 | [diff] [blame] | 1 | ; RUN: opt -basicaa -loop-versioning -S < %s | FileCheck %s |
| 2 | target triple = "x86_64-unknown-linux-gnu" |
| 3 | |
| 4 | define void @fill(i8** %ls1.20, i8** %ls2.21, i8* %cse3.22) { |
| 5 | ; CHECK: bb1.lver.check: |
| 6 | ; CHECK: br i1 %memcheck.conflict, label %bb1.ph.lver.orig, label %bb1.ph |
| 7 | bb1.ph: |
| 8 | %ls1.20.promoted = load i8*, i8** %ls1.20 |
| 9 | %ls2.21.promoted = load i8*, i8** %ls2.21 |
| 10 | br label %bb1 |
| 11 | |
| 12 | bb1: |
| 13 | %_tmp302 = phi i8* [ %ls2.21.promoted, %bb1.ph ], [ %_tmp30, %bb1 ] |
| 14 | %_tmp281 = phi i8* [ %ls1.20.promoted, %bb1.ph ], [ %_tmp28, %bb1 ] |
| 15 | %_tmp14 = getelementptr i8, i8* %_tmp281, i16 -1 |
| 16 | %_tmp15 = load i8, i8* %_tmp14 |
| 17 | %add = add i8 %_tmp15, 1 |
| 18 | store i8 %add, i8* %_tmp281 |
| 19 | store i8 %add, i8* %_tmp302 |
| 20 | %_tmp28 = getelementptr i8, i8* %_tmp281, i16 1 |
| 21 | %_tmp30 = getelementptr i8, i8* %_tmp302, i16 1 |
| 22 | br i1 false, label %bb1, label %bb3.loopexit |
| 23 | |
| 24 | bb3.loopexit: |
| 25 | %_tmp30.lcssa = phi i8* [ %_tmp30, %bb1 ] |
| 26 | %_tmp15.lcssa = phi i8 [ %_tmp15, %bb1 ] |
| 27 | %_tmp28.lcssa = phi i8* [ %_tmp28, %bb1 ] |
| 28 | store i8* %_tmp28.lcssa, i8** %ls1.20 |
| 29 | store i8 %_tmp15.lcssa, i8* %cse3.22 |
| 30 | store i8* %_tmp30.lcssa, i8** %ls2.21 |
| 31 | br label %bb3 |
| 32 | |
| 33 | bb3: |
| 34 | ret void |
| 35 | } |