1; Test target-specific stack cookie location.
2; RUN: llc -mtriple=aarch64-linux-android < %s -o - | FileCheck --check-prefix=ANDROID-AARCH64 %s
3; RUN: llc -mtriple=aarch64-fuchsia < %s -o - | FileCheck --check-prefix=FUCHSIA-AARCH64 %s
4
5define void @_Z1fv() sspreq {
6entry:
7  %x = alloca i32, align 4
8  %0 = bitcast i32* %x to i8*
9  call void @_Z7CapturePi(i32* nonnull %x)
10  ret void
11}
12
13declare void @_Z7CapturePi(i32*)
14
15; ANDROID-AARCH64: mrs [[A:.*]], TPIDR_EL0
16; ANDROID-AARCH64: ldr [[B:.*]], {{\[}}[[A]], #40]
17; ANDROID-AARCH64: str [[B]], [sp,
18; ANDROID-AARCH64: ldr [[C:.*]], {{\[}}[[A]], #40]
19; ANDROID-AARCH64: ldr [[D:.*]], [sp,
20; ANDROID-AARCH64: cmp [[C]], [[D]]
21
22; FUCHSIA-AARCH64: mrs [[A:.*]], TPIDR_EL0
23; FUCHSIA-AARCH64: ldur [[B:.*]], {{\[}}[[A]], #-16]
24; FUCHSIA-AARCH64: str [[B]], [sp,
25; FUCHSIA-AARCH64: ldur [[C:.*]], {{\[}}[[A]], #-16]
26; FUCHSIA-AARCH64: ldr [[D:.*]], [sp,
27; FUCHSIA-AARCH64: cmp [[C]], [[D]]
28