[InstCombine] Signed saturation patterns
[llvm-core.git] / test / CodeGen / ARM / swift-ios.ll
bloba5d09524e11dc427a2f1400e58e5b800164ac4d8
1 ; RUN: llc -mtriple=armv7-apple-ios < %s | FileCheck %s
3 define swiftcc float @t1(float %a, float %b) {
4 entry:
5 ; CHECK: t1
6 ; CHECK-NOT: vmov
7 ; CHECK: vadd.f32
8   %add = fadd float %a, %b
9   ret float %add
12 define swiftcc double @t2(double %a, double %b) {
13 entry:
14 ; CHECK: t2
15 ; CHECK-NOT: vmov
16 ; CHECK: vadd.f64
17   %add = fadd double %a, %b
18   ret double %add
21 define swiftcc double @t9(double %d0, double %d1, double %d2, double %d3,
22     double %d4, double %d5, double %d6, double %d7, float %a, float %b) {
23 entry:
24 ; CHECK-LABEL: t9:
25 ; CHECK-NOT: vmov
26 ; CHECK: vldr
27   %add = fadd float %a, %b
28   %conv = fpext float %add to double
29   ret double %conv
32 define swiftcc double @t10(double %d0, double %d1, double %d2, double %d3,
33     double %d4, double %d5, double %a, float %b, double %c) {
34 entry:
35 ; CHECK-LABEL: t10:
36 ; CHECK-NOT: vmov
37 ; CHECK: vldr
38   %add = fadd double %a, %c
39   ret double %add
42 define swiftcc float @t11(double %d0, double %d1, double %d2, double %d3,
43     double %d4, double %d5, double %d6, float %a, double %b, float %c) {
44 entry:
45 ; CHECK-LABEL: t11:
46 ; CHECK: vldr
47   %add = fadd float %a, %c
48   ret float %add
51 define swiftcc double @t12(double %a, double %b) {
52 entry:
53 ; CHECK-LABEL: t12:
54 ; CHECK: vstr
55   %add = fadd double %a, %b
56   %sub = fsub double %a, %b
57   %call = tail call swiftcc double @x(double 0.000000e+00, double 0.000000e+00,
58                  double 0.000000e+00, double 0.000000e+00, double 0.000000e+00,
59                  double 0.000000e+00, double %add, float 0.000000e+00,
60                  double %sub)
61   ret double %call
64 declare swiftcc double @x(double, double, double, double, double, double,
65                           double, float, double)
67 attributes #0 = { readnone }
68 attributes #1 = { readonly }