blob: ce6d6b29e9d559017e964f6cb802535b74cd27bb [file] [log] [blame]
Bob Wilson20399e12009-10-09 17:20:46 +00001; RUN: llc < %s -march=arm -mattr=+vfp2 | FileCheck %s
Dan Gohmanf17a25c2007-07-18 16:29:46 +00002
Tanya Lattner246a1372008-02-17 20:02:20 +00003define float @f1(float %a, float %b) {
Bob Wilson20399e12009-10-09 17:20:46 +00004;CHECK: f1:
Jim Grosbache2fda532009-11-09 00:11:35 +00005;CHECK: vadd.f32
Dan Gohmanf17a25c2007-07-18 16:29:46 +00006entry:
Dan Gohman7ce405e2009-06-04 22:49:04 +00007 %tmp = fadd float %a, %b ; <float> [#uses=1]
Dan Gohmanf17a25c2007-07-18 16:29:46 +00008 ret float %tmp
9}
10
Tanya Lattner246a1372008-02-17 20:02:20 +000011define double @f2(double %a, double %b) {
Bob Wilson20399e12009-10-09 17:20:46 +000012;CHECK: f2:
Jim Grosbache2fda532009-11-09 00:11:35 +000013;CHECK: vadd.f64
Dan Gohmanf17a25c2007-07-18 16:29:46 +000014entry:
Dan Gohman7ce405e2009-06-04 22:49:04 +000015 %tmp = fadd double %a, %b ; <double> [#uses=1]
Dan Gohmanf17a25c2007-07-18 16:29:46 +000016 ret double %tmp
17}
18
Tanya Lattner246a1372008-02-17 20:02:20 +000019define float @f3(float %a, float %b) {
Bob Wilson20399e12009-10-09 17:20:46 +000020;CHECK: f3:
Jim Grosbache2fda532009-11-09 00:11:35 +000021;CHECK: vmul.f32
Dan Gohmanf17a25c2007-07-18 16:29:46 +000022entry:
Dan Gohman7ce405e2009-06-04 22:49:04 +000023 %tmp = fmul float %a, %b ; <float> [#uses=1]
Dan Gohmanf17a25c2007-07-18 16:29:46 +000024 ret float %tmp
25}
26
Tanya Lattner246a1372008-02-17 20:02:20 +000027define double @f4(double %a, double %b) {
Bob Wilson20399e12009-10-09 17:20:46 +000028;CHECK: f4:
Jim Grosbache2fda532009-11-09 00:11:35 +000029;CHECK: vmul.f64
Dan Gohmanf17a25c2007-07-18 16:29:46 +000030entry:
Dan Gohman7ce405e2009-06-04 22:49:04 +000031 %tmp = fmul double %a, %b ; <double> [#uses=1]
Dan Gohmanf17a25c2007-07-18 16:29:46 +000032 ret double %tmp
33}
34
Tanya Lattner246a1372008-02-17 20:02:20 +000035define float @f5(float %a, float %b) {
Bob Wilson20399e12009-10-09 17:20:46 +000036;CHECK: f5:
Jim Grosbache2fda532009-11-09 00:11:35 +000037;CHECK: vsub.f32
Dan Gohmanf17a25c2007-07-18 16:29:46 +000038entry:
Dan Gohman7ce405e2009-06-04 22:49:04 +000039 %tmp = fsub float %a, %b ; <float> [#uses=1]
Dan Gohmanf17a25c2007-07-18 16:29:46 +000040 ret float %tmp
41}
42
Tanya Lattner246a1372008-02-17 20:02:20 +000043define double @f6(double %a, double %b) {
Bob Wilson20399e12009-10-09 17:20:46 +000044;CHECK: f6:
Jim Grosbache2fda532009-11-09 00:11:35 +000045;CHECK: vsub.f64
Dan Gohmanf17a25c2007-07-18 16:29:46 +000046entry:
Dan Gohman7ce405e2009-06-04 22:49:04 +000047 %tmp = fsub double %a, %b ; <double> [#uses=1]
Dan Gohmanf17a25c2007-07-18 16:29:46 +000048 ret double %tmp
49}
50
Tanya Lattner246a1372008-02-17 20:02:20 +000051define float @f7(float %a) {
Bob Wilson20399e12009-10-09 17:20:46 +000052;CHECK: f7:
53;CHECK: eor
Dan Gohmanf17a25c2007-07-18 16:29:46 +000054entry:
Dan Gohman7ce405e2009-06-04 22:49:04 +000055 %tmp1 = fsub float -0.000000e+00, %a ; <float> [#uses=1]
Dan Gohmanf17a25c2007-07-18 16:29:46 +000056 ret float %tmp1
57}
58
Tanya Lattner246a1372008-02-17 20:02:20 +000059define double @f8(double %a) {
Bob Wilson20399e12009-10-09 17:20:46 +000060;CHECK: f8:
Jim Grosbache2fda532009-11-09 00:11:35 +000061;CHECK: vneg.f64
Dan Gohmanf17a25c2007-07-18 16:29:46 +000062entry:
Dan Gohman7ce405e2009-06-04 22:49:04 +000063 %tmp1 = fsub double -0.000000e+00, %a ; <double> [#uses=1]
Dan Gohmanf17a25c2007-07-18 16:29:46 +000064 ret double %tmp1
65}
66
Tanya Lattner246a1372008-02-17 20:02:20 +000067define float @f9(float %a, float %b) {
Bob Wilson20399e12009-10-09 17:20:46 +000068;CHECK: f9:
Jim Grosbache2fda532009-11-09 00:11:35 +000069;CHECK: vdiv.f32
Dan Gohmanf17a25c2007-07-18 16:29:46 +000070entry:
Tanya Lattner246a1372008-02-17 20:02:20 +000071 %tmp1 = fdiv float %a, %b ; <float> [#uses=1]
Dan Gohmanf17a25c2007-07-18 16:29:46 +000072 ret float %tmp1
73}
74
Tanya Lattner246a1372008-02-17 20:02:20 +000075define double @f10(double %a, double %b) {
Bob Wilson20399e12009-10-09 17:20:46 +000076;CHECK: f10:
Jim Grosbache2fda532009-11-09 00:11:35 +000077;CHECK: vdiv.f64
Dan Gohmanf17a25c2007-07-18 16:29:46 +000078entry:
Tanya Lattner246a1372008-02-17 20:02:20 +000079 %tmp1 = fdiv double %a, %b ; <double> [#uses=1]
Dan Gohmanf17a25c2007-07-18 16:29:46 +000080 ret double %tmp1
81}
82
Tanya Lattner246a1372008-02-17 20:02:20 +000083define float @f11(float %a) {
Bob Wilson20399e12009-10-09 17:20:46 +000084;CHECK: f11:
85;CHECK: bic
Dan Gohmanf17a25c2007-07-18 16:29:46 +000086entry:
Tanya Lattner246a1372008-02-17 20:02:20 +000087 %tmp1 = call float @fabsf( float %a ) ; <float> [#uses=1]
Dan Gohmanf17a25c2007-07-18 16:29:46 +000088 ret float %tmp1
89}
90
Tanya Lattner246a1372008-02-17 20:02:20 +000091declare float @fabsf(float)
Dan Gohmanf17a25c2007-07-18 16:29:46 +000092
Tanya Lattner246a1372008-02-17 20:02:20 +000093define double @f12(double %a) {
Bob Wilson20399e12009-10-09 17:20:46 +000094;CHECK: f12:
Jim Grosbache2fda532009-11-09 00:11:35 +000095;CHECK: vabs.f64
Dan Gohmanf17a25c2007-07-18 16:29:46 +000096entry:
Tanya Lattner246a1372008-02-17 20:02:20 +000097 %tmp1 = call double @fabs( double %a ) ; <double> [#uses=1]
Dan Gohmanf17a25c2007-07-18 16:29:46 +000098 ret double %tmp1
99}
100
Tanya Lattner246a1372008-02-17 20:02:20 +0000101declare double @fabs(double)