1; RUN: llc -march=mips -mattr=+o32 < %s | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-EB
2; RUN: llc -march=mipsel -mattr=+o32 < %s | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-EL
3; RUN: llc -march=mips -mattr=+o32,+fpxx < %s | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-EB
4; RUN: llc -march=mipsel -mattr=+o32,+fpxx < %s | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-EL
5; RUN: llc -march=mips -mattr=+o32,+fp64 < %s | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-EB
6; RUN: llc -march=mipsel -mattr=+o32,+fp64 < %s | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-EL
7
8@var = global double 0.0
9
10declare void @foo(...)
11
12define void @bar() {
13
14; CHECK-LABEL:  bar:
15
16; CHECK:  .cfi_def_cfa_offset 40
17; CHECK:  sdc1  $f22, 32($sp)
18; CHECK:  sdc1  $f20, 24($sp)
19; CHECK:  sw  $ra, 20($sp)
20; CHECK:  sw  $16, 16($sp)
21
22; CHECK-EB:  .cfi_offset 55, -8
23; CHECK-EB:  .cfi_offset 54, -4
24; CHECK-EB:  .cfi_offset 53, -16
25; CHECK-EB:  .cfi_offset 52, -12
26
27; CHECK-EL:  .cfi_offset 54, -8
28; CHECK-EL:  .cfi_offset 55, -4
29; CHECK-EL:  .cfi_offset 52, -16
30; CHECK-EL:  .cfi_offset 53, -12
31
32; CHECK:  .cfi_offset 31, -20
33; CHECK:  .cfi_offset 16, -24
34
35    %val1 = load volatile double* @var
36    %val2 = load volatile double* @var
37    call void (...)* @foo() nounwind
38    store volatile double %val1, double* @var
39    store volatile double %val2, double* @var
40    ret void
41}
42