[InstCombine] Signed saturation patterns
[llvm-core.git] / test / CodeGen / SPARC / LeonItinerariesUT.ll
blob5a6be134686bb430bebd9355e8fcb16b4684ffb2
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 %a, float* byval %b, float* byval %c, float* byval %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