• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; RUN: llc < %s -O1 -march=sparc | FileCheck %s -check-prefix=NO_ITIN
2; RUN: llc < %s -O1 -march=sparc -mcpu=leon2   | FileCheck %s -check-prefix=LEON2_ITIN
3; RUN: llc < %s -O1 -march=sparc -mcpu=leon3   | FileCheck %s -check-prefix=LEON3_4_ITIN
4; RUN: llc < %s -O1 -march=sparc -mcpu=leon4   | FileCheck %s -check-prefix=LEON3_4_ITIN
5
6; NO_ITIN-LABEL: f32_ops:
7; NO_ITIN:       ld
8; NO_ITIN-NEXT:  ld
9; NO_ITIN-NEXT:  ld
10; NO_ITIN-NEXT:  ld
11; NO_ITIN-NEXT:  fadds
12; NO_ITIN-NEXT:  fsubs
13; NO_ITIN-NEXT:  fmuls
14; NO_ITIN-NEXT:  retl
15; NO_ITIN-NEXT:  fdivs
16
17; LEON2_ITIN-LABEL: f32_ops:
18; LEON2_ITIN:       ld
19; LEON2_ITIN-NEXT:  ld
20; LEON2_ITIN-NEXT:  fadds
21; LEON2_ITIN-NEXT:  ld
22; LEON2_ITIN-NEXT:  fsubs
23; LEON2_ITIN-NEXT:  ld
24; LEON2_ITIN-NEXT:  fmuls
25; LEON2_ITIN-NEXT:  retl
26; LEON2_ITIN-NEXT:  fdivs
27
28; LEON3_4_ITIN-LABEL: f32_ops:
29; LEON3_4_ITIN:       ld
30; LEON3_4_ITIN-NEXT:  ld
31; LEON3_4_ITIN-NEXT:  ld
32; LEON3_4_ITIN-NEXT:  fadds
33; LEON3_4_ITIN-NEXT:  ld
34; LEON3_4_ITIN-NEXT:  fsubs
35; LEON3_4_ITIN-NEXT:  fmuls
36; LEON3_4_ITIN-NEXT:  retl
37; LEON3_4_ITIN-NEXT:  fdivs
38
39define float @f32_ops(float* byval %a, float* byval %b, float* byval %c, float* byval %d) {
40entry:
41  %0 = load float, float* %a, align 8
42  %1 = load float, float* %b, align 8
43  %2 = load float, float* %c, align 8
44  %3 = load float, float* %d, align 8
45  %4 = fadd float %0, %1
46  %5 = fsub float %4, %2
47  %6 = fmul float %5, %3
48  %7 = fdiv float %6, %4
49  ret float %7
50}