| Tim Northover | 00ed996 | 2014-03-29 10:18:08 +0000 | [diff] [blame] | 1 | ; RUN: llc < %s -mtriple=arm64-apple-ios | FileCheck %s |
| 2 | ; RUN: llc < %s -mtriple=arm64-linux-gnu | FileCheck %s --check-prefix=CHECK-LINUX |
| 3 | ; RUN: llc < %s -mtriple=arm64-linux-gnu -code-model=large| FileCheck %s --check-prefix=CHECK-LARGE |
| 4 | |
| 5 | ; rdar://9188695 |
| 6 | |
| 7 | define i64 @t() nounwind ssp { |
| 8 | entry: |
| 9 | ; CHECK-LABEL: t: |
| 10 | ; CHECK: adrp [[REG:x[0-9]+]], Ltmp1@PAGE |
| 11 | ; CHECK: add {{x[0-9]+}}, [[REG]], Ltmp1@PAGEOFF |
| 12 | |
| 13 | ; CHECK-LINUX-LABEL: t: |
| 14 | ; CHECK-LINUX: adrp [[REG:x[0-9]+]], .Ltmp1 |
| 15 | ; CHECK-LINUX: add {{x[0-9]+}}, [[REG]], :lo12:.Ltmp1 |
| 16 | |
| 17 | ; CHECK-LARGE-LABEL: t: |
| Evandro Menezes | 7960b2e | 2017-01-18 18:57:08 +0000 | [diff] [blame] | 18 | ; CHECK-LARGE: movz [[ADDR_REG:x[0-9]+]], #:abs_g0_nc:[[DEST_LBL:.Ltmp[0-9]+]] |
| Tim Northover | 00ed996 | 2014-03-29 10:18:08 +0000 | [diff] [blame] | 19 | ; CHECK-LARGE: movk [[ADDR_REG]], #:abs_g1_nc:[[DEST_LBL]] |
| Evandro Menezes | 7960b2e | 2017-01-18 18:57:08 +0000 | [diff] [blame] | 20 | ; CHECK-LARGE: movk [[ADDR_REG]], #:abs_g2_nc:[[DEST_LBL]] |
| 21 | ; CHECK-LARGE: movk [[ADDR_REG]], #:abs_g3:[[DEST_LBL]] |
| Tim Northover | 00ed996 | 2014-03-29 10:18:08 +0000 | [diff] [blame] | 22 | |
| 23 | %recover = alloca i64, align 8 |
| 24 | store volatile i64 ptrtoint (i8* blockaddress(@t, %mylabel) to i64), i64* %recover, align 8 |
| 25 | br label %mylabel |
| 26 | |
| 27 | mylabel: |
| David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 28 | %tmp = load volatile i64, i64* %recover, align 8 |
| Tim Northover | 00ed996 | 2014-03-29 10:18:08 +0000 | [diff] [blame] | 29 | ret i64 %tmp |
| 30 | } |