blob: 9a093e6f9825bb0ec9327ca32bb9e292e201005a [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:
David Blaikiea79ac142015-02-27 21:17:42 +000022 %0 = load fp128, fp128* @gld0, align 16
Akira Hatanaka3b7391d2013-03-05 22:20:28 +000023 tail call void @foo2(fp128 %0)
24 ret void
25}
26
27declare void @foo2(fp128)
Akira Hatanaka5f3ba9e2013-03-05 22:41:55 +000028
Akira Hatanakaa9cf03f2013-03-06 01:58:03 +000029; CHECK: foo3
Akira Hatanaka5f3ba9e2013-03-05 22:41:55 +000030; CHECK: ld $[[R0:[0-9]+]], %got_disp(gld0)
31; CHECK: sdc1 $f2, 8($[[R0]])
32; CHECK: sdc1 $f0, 0($[[R0]])
33; CHECK: ld $[[R1:[0-9]+]], %got_disp(gld1)
34; CHECK: ldc1 $f0, 0($[[R1]])
35; CHECK: ldc1 $f2, 8($[[R1]])
36
37define fp128 @foo3() {
38entry:
39 %call = tail call fp128 @foo4()
40 store fp128 %call, fp128* @gld0, align 16
David Blaikiea79ac142015-02-27 21:17:42 +000041 %0 = load fp128, fp128* @gld1, align 16
Akira Hatanaka5f3ba9e2013-03-05 22:41:55 +000042 ret fp128 %0
43}
44
45declare fp128 @foo4()