blob: 418b59803d308cd8b0b7be8dffb3749633b07c2d [file] [log] [blame]
Edward O'Callaghan11cc4fa2009-11-22 14:23:33 +00001; RUN: llc < %s -march=arm -mattr=+vfp2 | FileCheck %s -check-prefix=VFP2
Jim Grosbach7ec7a0e2010-03-25 23:47:34 +00002; RUN: llc < %s -march=arm -mattr=+neon | FileCheck %s -check-prefix=NFP0
Edward O'Callaghan11cc4fa2009-11-22 14:23:33 +00003; RUN: llc < %s -march=arm -mcpu=cortex-a8 | FileCheck %s -check-prefix=CORTEXA8
4; RUN: llc < %s -march=arm -mcpu=cortex-a9 | FileCheck %s -check-prefix=CORTEXA9
David Goodwin53e44712009-08-04 20:39:05 +00005
6define float @test1(float* %a) {
7entry:
8 %0 = load float* %a, align 4 ; <float> [#uses=2]
9 %1 = fsub float -0.000000e+00, %0 ; <float> [#uses=2]
10 %2 = fpext float %1 to double ; <double> [#uses=1]
11 %3 = fcmp olt double %2, 1.234000e+00 ; <i1> [#uses=1]
12 %retval = select i1 %3, float %1, float %0 ; <float> [#uses=1]
13 ret float %retval
14}
Edward O'Callaghan11cc4fa2009-11-22 14:23:33 +000015; VFP2: test1:
Andrew Trickc8bfd1d2011-01-21 05:51:33 +000016; VFP2: vneg.f32 s{{.*}}, s{{.*}}
Edward O'Callaghan11cc4fa2009-11-22 14:23:33 +000017
18; NFP1: test1:
Andrew Trickc8bfd1d2011-01-21 05:51:33 +000019; NFP1: vneg.f32 d{{.*}}, d{{.*}}
Edward O'Callaghan11cc4fa2009-11-22 14:23:33 +000020
21; NFP0: test1:
Andrew Trickc8bfd1d2011-01-21 05:51:33 +000022; NFP0: vneg.f32 s{{.*}}, s{{.*}}
Edward O'Callaghan11cc4fa2009-11-22 14:23:33 +000023
24; CORTEXA8: test1:
Andrew Trickc8bfd1d2011-01-21 05:51:33 +000025; CORTEXA8: vneg.f32 d{{.*}}, d{{.*}}
Edward O'Callaghan11cc4fa2009-11-22 14:23:33 +000026
27; CORTEXA9: test1:
Andrew Trickc8bfd1d2011-01-21 05:51:33 +000028; CORTEXA9: vneg.f32 s{{.*}}, s{{.*}}
David Goodwin53e44712009-08-04 20:39:05 +000029
30define float @test2(float* %a) {
31entry:
32 %0 = load float* %a, align 4 ; <float> [#uses=2]
33 %1 = fmul float -1.000000e+00, %0 ; <float> [#uses=2]
34 %2 = fpext float %1 to double ; <double> [#uses=1]
35 %3 = fcmp olt double %2, 1.234000e+00 ; <i1> [#uses=1]
36 %retval = select i1 %3, float %1, float %0 ; <float> [#uses=1]
37 ret float %retval
38}
Edward O'Callaghan11cc4fa2009-11-22 14:23:33 +000039; VFP2: test2:
Andrew Trickc8bfd1d2011-01-21 05:51:33 +000040; VFP2: vneg.f32 s{{.*}}, s{{.*}}
Edward O'Callaghan11cc4fa2009-11-22 14:23:33 +000041
42; NFP1: test2:
Andrew Trickc8bfd1d2011-01-21 05:51:33 +000043; NFP1: vneg.f32 d{{.*}}, d{{.*}}
Edward O'Callaghan11cc4fa2009-11-22 14:23:33 +000044
45; NFP0: test2:
Andrew Trickc8bfd1d2011-01-21 05:51:33 +000046; NFP0: vneg.f32 s{{.*}}, s{{.*}}
Edward O'Callaghan11cc4fa2009-11-22 14:23:33 +000047
48; CORTEXA8: test2:
Andrew Trickc8bfd1d2011-01-21 05:51:33 +000049; CORTEXA8: vneg.f32 d{{.*}}, d{{.*}}
Edward O'Callaghan11cc4fa2009-11-22 14:23:33 +000050
51; CORTEXA9: test2:
Andrew Trickc8bfd1d2011-01-21 05:51:33 +000052; CORTEXA9: vneg.f32 s{{.*}}, s{{.*}}
Edward O'Callaghan11cc4fa2009-11-22 14:23:33 +000053