blob: 260ec49cd86b79ae72c1eba5516e7358ca375d7b [file] [log] [blame]
Bob Wilsone8e72be2009-10-09 17:20:46 +00001; RUN: llc < %s -march=arm -mattr=+vfp2 | FileCheck %s
Rafael Espindolafb6abd72006-10-10 14:26:06 +00002
Tanya Lattner6263f942008-02-17 20:02:20 +00003define i32 @f1(float %a) {
Bob Wilsone8e72be2009-10-09 17:20:46 +00004;CHECK: f1:
Jim Grosbache5165492009-11-09 00:11:35 +00005;CHECK: vcmpe.f32
Bob Wilsone8e72be2009-10-09 17:20:46 +00006;CHECK: movmi
Rafael Espindolafb6abd72006-10-10 14:26:06 +00007entry:
Tanya Lattner6263f942008-02-17 20:02:20 +00008 %tmp = fcmp olt float %a, 1.000000e+00 ; <i1> [#uses=1]
9 %tmp1 = zext i1 %tmp to i32 ; <i32> [#uses=1]
10 ret i32 %tmp1
Rafael Espindolafb6abd72006-10-10 14:26:06 +000011}
12
Tanya Lattner6263f942008-02-17 20:02:20 +000013define i32 @f2(float %a) {
Bob Wilsone8e72be2009-10-09 17:20:46 +000014;CHECK: f2:
Jim Grosbache5165492009-11-09 00:11:35 +000015;CHECK: vcmpe.f32
Bob Wilsone8e72be2009-10-09 17:20:46 +000016;CHECK: moveq
Rafael Espindolafb6abd72006-10-10 14:26:06 +000017entry:
Tanya Lattner6263f942008-02-17 20:02:20 +000018 %tmp = fcmp oeq float %a, 1.000000e+00 ; <i1> [#uses=1]
19 %tmp2 = zext i1 %tmp to i32 ; <i32> [#uses=1]
20 ret i32 %tmp2
Rafael Espindolafb6abd72006-10-10 14:26:06 +000021}
22
Tanya Lattner6263f942008-02-17 20:02:20 +000023define i32 @f3(float %a) {
Bob Wilsone8e72be2009-10-09 17:20:46 +000024;CHECK: f3:
Jim Grosbache5165492009-11-09 00:11:35 +000025;CHECK: vcmpe.f32
Bob Wilsone8e72be2009-10-09 17:20:46 +000026;CHECK: movgt
Rafael Espindolafb6abd72006-10-10 14:26:06 +000027entry:
Tanya Lattner6263f942008-02-17 20:02:20 +000028 %tmp = fcmp ogt float %a, 1.000000e+00 ; <i1> [#uses=1]
29 %tmp3 = zext i1 %tmp to i32 ; <i32> [#uses=1]
30 ret i32 %tmp3
Rafael Espindolafb6abd72006-10-10 14:26:06 +000031}
32
Tanya Lattner6263f942008-02-17 20:02:20 +000033define i32 @f4(float %a) {
Bob Wilsone8e72be2009-10-09 17:20:46 +000034;CHECK: f4:
Jim Grosbache5165492009-11-09 00:11:35 +000035;CHECK: vcmpe.f32
Bob Wilsone8e72be2009-10-09 17:20:46 +000036;CHECK: movge
Rafael Espindolafb6abd72006-10-10 14:26:06 +000037entry:
Tanya Lattner6263f942008-02-17 20:02:20 +000038 %tmp = fcmp oge float %a, 1.000000e+00 ; <i1> [#uses=1]
39 %tmp4 = zext i1 %tmp to i32 ; <i32> [#uses=1]
40 ret i32 %tmp4
Rafael Espindolafb6abd72006-10-10 14:26:06 +000041}
42
Tanya Lattner6263f942008-02-17 20:02:20 +000043define i32 @f5(float %a) {
Bob Wilsone8e72be2009-10-09 17:20:46 +000044;CHECK: f5:
Jim Grosbache5165492009-11-09 00:11:35 +000045;CHECK: vcmpe.f32
Bob Wilsone8e72be2009-10-09 17:20:46 +000046;CHECK: movls
Rafael Espindolafb6abd72006-10-10 14:26:06 +000047entry:
Tanya Lattner6263f942008-02-17 20:02:20 +000048 %tmp = fcmp ole float %a, 1.000000e+00 ; <i1> [#uses=1]
49 %tmp5 = zext i1 %tmp to i32 ; <i32> [#uses=1]
50 ret i32 %tmp5
Rafael Espindolafb6abd72006-10-10 14:26:06 +000051}
Rafael Espindola0d9fe762006-10-10 16:33:47 +000052
Tanya Lattner6263f942008-02-17 20:02:20 +000053define i32 @f6(float %a) {
Bob Wilsone8e72be2009-10-09 17:20:46 +000054;CHECK: f6:
Jim Grosbache5165492009-11-09 00:11:35 +000055;CHECK: vcmpe.f32
Bob Wilsone8e72be2009-10-09 17:20:46 +000056;CHECK: movne
Rafael Espindola42b62f32006-10-13 13:14:59 +000057entry:
Tanya Lattner6263f942008-02-17 20:02:20 +000058 %tmp = fcmp une float %a, 1.000000e+00 ; <i1> [#uses=1]
59 %tmp6 = zext i1 %tmp to i32 ; <i32> [#uses=1]
60 ret i32 %tmp6
Rafael Espindola42b62f32006-10-13 13:14:59 +000061}
62
Tanya Lattner6263f942008-02-17 20:02:20 +000063define i32 @g1(double %a) {
Bob Wilsone8e72be2009-10-09 17:20:46 +000064;CHECK: g1:
Jim Grosbache5165492009-11-09 00:11:35 +000065;CHECK: vcmpe.f64
Bob Wilsone8e72be2009-10-09 17:20:46 +000066;CHECK: movmi
Rafael Espindola0d9fe762006-10-10 16:33:47 +000067entry:
Tanya Lattner6263f942008-02-17 20:02:20 +000068 %tmp = fcmp olt double %a, 1.000000e+00 ; <i1> [#uses=1]
69 %tmp7 = zext i1 %tmp to i32 ; <i32> [#uses=1]
70 ret i32 %tmp7
Rafael Espindola0d9fe762006-10-10 16:33:47 +000071}