xref: /llvm-project/llvm/test/CodeGen/PowerPC/GlobalISel/fconstant.ll (revision 6ee2f770efb6b1b02438db025af0899ed5bf9313)
1*6ee2f770SChen Zheng; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2*6ee2f770SChen Zheng
3*6ee2f770SChen Zheng; RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -global-isel -code-model=small \
4*6ee2f770SChen Zheng; RUN:   -verify-machineinstrs -o - < %s | FileCheck %s --check-prefix=SMALL
5*6ee2f770SChen Zheng; RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -global-isel -code-model=medium \
6*6ee2f770SChen Zheng; RUN:   -verify-machineinstrs -o - < %s | FileCheck %s --check-prefix=MEDIUM
7*6ee2f770SChen Zheng; RUN: llc -mtriple=powerpc64le-unknown-linux-gnu -global-isel -code-model=large \
8*6ee2f770SChen Zheng; RUN:   -verify-machineinstrs -o - < %s | FileCheck %s --check-prefix=LARGE
9*6ee2f770SChen Zheng
10*6ee2f770SChen Zhengdefine float @foo_float() {
11*6ee2f770SChen Zheng; SMALL-LABEL: foo_float:
12*6ee2f770SChen Zheng; SMALL:       # %bb.0: # %entry
13*6ee2f770SChen Zheng; SMALL-NEXT:    ld 3, .LC0@toc(2)
14*6ee2f770SChen Zheng; SMALL-NEXT:    lfs 1, 0(3)
15*6ee2f770SChen Zheng; SMALL-NEXT:    blr
16*6ee2f770SChen Zheng;
17*6ee2f770SChen Zheng; MEDIUM-LABEL: foo_float:
18*6ee2f770SChen Zheng; MEDIUM:       # %bb.0: # %entry
19*6ee2f770SChen Zheng; MEDIUM-NEXT:    addis 3, 2, .LCPI0_0@toc@ha
20*6ee2f770SChen Zheng; MEDIUM-NEXT:    addi 3, 3, .LCPI0_0@toc@l
21*6ee2f770SChen Zheng; MEDIUM-NEXT:    lfs 1, 0(3)
22*6ee2f770SChen Zheng; MEDIUM-NEXT:    blr
23*6ee2f770SChen Zheng;
24*6ee2f770SChen Zheng; LARGE-LABEL: foo_float:
25*6ee2f770SChen Zheng; LARGE:       # %bb.0: # %entry
26*6ee2f770SChen Zheng; LARGE-NEXT:    addis 3, 2, .LC0@toc@ha
27*6ee2f770SChen Zheng; LARGE-NEXT:    ld 3, .LC0@toc@l(3)
28*6ee2f770SChen Zheng; LARGE-NEXT:    lfs 1, 0(3)
29*6ee2f770SChen Zheng; LARGE-NEXT:    blr
30*6ee2f770SChen Zhengentry:
31*6ee2f770SChen Zheng  ret float 1.000000e+00
32*6ee2f770SChen Zheng}
33*6ee2f770SChen Zheng
34*6ee2f770SChen Zhengdefine double @foo_double() {
35*6ee2f770SChen Zheng; SMALL-LABEL: foo_double:
36*6ee2f770SChen Zheng; SMALL:       # %bb.0: # %entry
37*6ee2f770SChen Zheng; SMALL-NEXT:    ld 3, .LC1@toc(2)
38*6ee2f770SChen Zheng; SMALL-NEXT:    lfd 1, 0(3)
39*6ee2f770SChen Zheng; SMALL-NEXT:    blr
40*6ee2f770SChen Zheng;
41*6ee2f770SChen Zheng; MEDIUM-LABEL: foo_double:
42*6ee2f770SChen Zheng; MEDIUM:       # %bb.0: # %entry
43*6ee2f770SChen Zheng; MEDIUM-NEXT:    addis 3, 2, .LCPI1_0@toc@ha
44*6ee2f770SChen Zheng; MEDIUM-NEXT:    addi 3, 3, .LCPI1_0@toc@l
45*6ee2f770SChen Zheng; MEDIUM-NEXT:    lfd 1, 0(3)
46*6ee2f770SChen Zheng; MEDIUM-NEXT:    blr
47*6ee2f770SChen Zheng;
48*6ee2f770SChen Zheng; LARGE-LABEL: foo_double:
49*6ee2f770SChen Zheng; LARGE:       # %bb.0: # %entry
50*6ee2f770SChen Zheng; LARGE-NEXT:    addis 3, 2, .LC1@toc@ha
51*6ee2f770SChen Zheng; LARGE-NEXT:    ld 3, .LC1@toc@l(3)
52*6ee2f770SChen Zheng; LARGE-NEXT:    lfd 1, 0(3)
53*6ee2f770SChen Zheng; LARGE-NEXT:    blr
54*6ee2f770SChen Zhengentry:
55*6ee2f770SChen Zheng  ret double 1.000000e+00
56*6ee2f770SChen Zheng}
57