Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / CodeGen / SPARC / LeonItinerariesUT.ll
blob796dcf2e145c848b495ad4623990db29a7faf67b
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
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
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
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
39 define float @f32_ops(float* byval(float) %a, float* byval(float) %b, float* byval(float) %c, float* byval(float) %d) {
40 entry:
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