Krzysztof Parzyszek | 1279881 | 2016-01-12 19:09:01 +0000 | [diff] [blame] | 1 | ; RUN: llc -enable-aa-sched-mi -march=hexagon -mcpu=hexagonv5 -rdf-opt=0 \ |
| 2 | ; RUN: < %s | FileCheck %s |
Colin LeMahieu | d215875 | 2015-06-18 20:43:50 +0000 | [diff] [blame] | 3 | |
| 4 | ; CHECK: { |
Krzysztof Parzyszek | c9f797f | 2018-03-06 19:07:21 +0000 | [diff] [blame] | 5 | ; CHECK: = memd([[REG0:(r[0-9]+)]]++#8) |
| 6 | ; CHECK-NOT: memw([[REG0]]+#0) = |
Colin LeMahieu | d215875 | 2015-06-18 20:43:50 +0000 | [diff] [blame] | 7 | ; CHECK: } |
| 8 | |
Colin LeMahieu | d215875 | 2015-06-18 20:43:50 +0000 | [diff] [blame] | 9 | |
Krzysztof Parzyszek | d91a9e2 | 2018-08-02 22:17:53 +0000 | [diff] [blame] | 10 | define void @f0(i32* %a0) #0 { |
| 11 | b0: |
| 12 | store i32 -1, i32* %a0, align 8, !tbaa !0 |
| 13 | br label %b4 |
| 14 | |
| 15 | b1: ; preds = %b3 |
Colin LeMahieu | d215875 | 2015-06-18 20:43:50 +0000 | [diff] [blame] | 16 | unreachable |
| 17 | |
Krzysztof Parzyszek | d91a9e2 | 2018-08-02 22:17:53 +0000 | [diff] [blame] | 18 | b2: ; preds = %b3 |
Colin LeMahieu | d215875 | 2015-06-18 20:43:50 +0000 | [diff] [blame] | 19 | ret void |
| 20 | |
Krzysztof Parzyszek | d91a9e2 | 2018-08-02 22:17:53 +0000 | [diff] [blame] | 21 | b3: ; preds = %b4 |
| 22 | %v0 = extractelement <2 x i32> %v6, i32 1 |
| 23 | br i1 undef, label %b2, label %b1 |
Colin LeMahieu | d215875 | 2015-06-18 20:43:50 +0000 | [diff] [blame] | 24 | |
Krzysztof Parzyszek | d91a9e2 | 2018-08-02 22:17:53 +0000 | [diff] [blame] | 25 | b4: ; preds = %b4, %b0 |
| 26 | %v1 = phi <2 x i32> [ %v6, %b4 ], [ zeroinitializer, %b0 ] |
| 27 | %v2 = phi i32* [ %v9, %b4 ], [ %a0, %b0 ] |
| 28 | %v3 = phi i32 [ %v7, %b4 ], [ 0, %b0 ] |
| 29 | %v4 = bitcast i32* %v2 to <2 x i32>* |
| 30 | %v5 = load <2 x i32>, <2 x i32>* %v4, align 8 |
| 31 | %v6 = add <2 x i32> %v5, %v1 |
| 32 | %v7 = add nsw i32 %v3, 2 |
| 33 | %v8 = icmp slt i32 %v3, 4 |
| 34 | %v9 = getelementptr i32, i32* %v2, i32 2 |
| 35 | br i1 %v8, label %b4, label %b3 |
Colin LeMahieu | d215875 | 2015-06-18 20:43:50 +0000 | [diff] [blame] | 36 | } |
| 37 | |
| 38 | attributes #0 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf"="true" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" } |
| 39 | |
Krzysztof Parzyszek | d91a9e2 | 2018-08-02 22:17:53 +0000 | [diff] [blame] | 40 | !0 = !{!1, !1, i64 0} |
| 41 | !1 = !{!"int", !2} |
| 42 | !2 = !{!"omnipotent char", !3} |
| 43 | !3 = !{!"Simple C/C++ TBAA"} |