blob: 3ddc882016e3ec9ddff50c143d3e4e7be5fc97de [file] [log] [blame]
Akira Hatanaka4b634fa2013-03-05 22:13:04 +00001; RUN: llc -march=mips64el -mcpu=mips64r2 < %s | FileCheck %s
2
3@gld0 = external global fp128
Akira Hatanaka5f3ba9e2013-03-05 22:41:55 +00004@gld1 = external global fp128
Akira Hatanaka4b634fa2013-03-05 22:13:04 +00005
6; CHECK: foo0
7; CHECK: sdc1 $f13, 8(${{[0-9]+}})
8; CHECK: sdc1 $f12, 0(${{[0-9]+}})
9
10define void @foo0(fp128 %a0) {
11entry:
12 store fp128 %a0, fp128* @gld0, align 16
13 ret void
14}
Akira Hatanaka3b7391d2013-03-05 22:20:28 +000015
16; CHECK: foo1
17; CHECK: ldc1 $f13, 8(${{[0-9]+}})
18; CHECK: ldc1 $f12, 0(${{[0-9]+}})
19
20define void @foo1() {
21entry:
22 %0 = load fp128* @gld0, align 16
23 tail call void @foo2(fp128 %0)
24 ret void
25}
26
27declare void @foo2(fp128)
Akira Hatanaka5f3ba9e2013-03-05 22:41:55 +000028
29; CHECK: ld $[[R0:[0-9]+]], %got_disp(gld0)
30; CHECK: sdc1 $f2, 8($[[R0]])
31; CHECK: sdc1 $f0, 0($[[R0]])
32; CHECK: ld $[[R1:[0-9]+]], %got_disp(gld1)
33; CHECK: ldc1 $f0, 0($[[R1]])
34; CHECK: ldc1 $f2, 8($[[R1]])
35
36define fp128 @foo3() {
37entry:
38 %call = tail call fp128 @foo4()
39 store fp128 %call, fp128* @gld0, align 16
40 %0 = load fp128* @gld1, align 16
41 ret fp128 %0
42}
43
44declare fp128 @foo4()