| Matthias Braun | 258b847c | 2017-01-06 19:22:01 +0000 | [diff] [blame] | 1 | ; RUN: llc -o - %s -mtriple=arm64-apple-ios -O2 | FileCheck %s |
| Tim Northover | 3b0846e | 2014-05-24 12:50:23 +0000 | [diff] [blame] | 2 | ; Test case for <rdar://problem/15942912>. |
| 3 | ; AdrpAddStr cannot be used when the store uses same |
| 4 | ; register as address and value. Indeed, the related |
| 5 | ; if applied, may completely remove the definition or |
| 6 | ; at least provide a wrong one (with the offset folded |
| 7 | ; into the definition). |
| 8 | |
| 9 | %struct.anon = type { i32*, i32** } |
| 10 | |
| 11 | @pptp_wan_head = internal global %struct.anon zeroinitializer, align 8 |
| 12 | |
| 13 | ; CHECK-LABEL: _pptp_wan_init |
| 14 | ; CHECK: ret |
| 15 | ; CHECK-NOT: AdrpAddStr |
| 16 | define i32 @pptp_wan_init() { |
| 17 | entry: |
| David Blaikie | f72d05b | 2015-03-13 18:20:45 +0000 | [diff] [blame] | 18 | store i32* null, i32** getelementptr inbounds (%struct.anon, %struct.anon* @pptp_wan_head, i64 0, i32 0), align 8 |
| 19 | store i32** getelementptr inbounds (%struct.anon, %struct.anon* @pptp_wan_head, i64 0, i32 0), i32*** getelementptr inbounds (%struct.anon, %struct.anon* @pptp_wan_head, i64 0, i32 1), align 8 |
| Tim Northover | 3b0846e | 2014-05-24 12:50:23 +0000 | [diff] [blame] | 20 | ret i32 0 |
| 21 | } |
| 22 | |
| 23 | |