aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGen/X86/cmov-fp.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGen/X86/cmov-fp.ll')
-rw-r--r--test/CodeGen/X86/cmov-fp.ll451
1 files changed, 0 insertions, 451 deletions
diff --git a/test/CodeGen/X86/cmov-fp.ll b/test/CodeGen/X86/cmov-fp.ll
deleted file mode 100644
index 768af943eb49..000000000000
--- a/test/CodeGen/X86/cmov-fp.ll
+++ /dev/null
@@ -1,451 +0,0 @@
-; RUN: llc -march x86 -mcpu pentium4 < %s | FileCheck %s -check-prefix=SSE
-; RUN: llc -march x86 -mcpu pentium3 < %s | FileCheck %s -check-prefix=NOSSE2
-; RUN: llc -march x86 -mcpu pentium2 < %s | FileCheck %s -check-prefix=NOSSE1
-; RUN: llc -march x86 -mcpu pentium < %s | FileCheck %s -check-prefix=NOCMOV
-; PR14035
-
-define double @test1(i32 %a, i32 %b, double %x) nounwind {
- %cmp = icmp ugt i32 %a, %b
- %sel = select i1 %cmp, double 99.0, double %x
- ret double %sel
-
-; SSE-LABEL: test1:
-; SSE: movsd
-
-; NOSSE2-LABEL: test1:
-; NOSSE2: fcmovnbe
-
-; NOSSE1-LABEL: test1:
-; NOSSE1: fcmovnbe
-
-; NOCMOV-LABEL: test1:
-; NOCMOV: fstp
-
-}
-
-define double @test2(i32 %a, i32 %b, double %x) nounwind {
- %cmp = icmp uge i32 %a, %b
- %sel = select i1 %cmp, double 99.0, double %x
- ret double %sel
-
-; SSE-LABEL: test2:
-; SSE: movsd
-
-; NOSSE2-LABEL: test2:
-; NOSSE2: fcmovnb
-
-; NOSSE1-LABEL: test2:
-; NOSSE1: fcmovnb
-
-; NOCMOV-LABEL: test2:
-; NOCMOV: fstp
-}
-
-define double @test3(i32 %a, i32 %b, double %x) nounwind {
- %cmp = icmp ult i32 %a, %b
- %sel = select i1 %cmp, double 99.0, double %x
- ret double %sel
-
-; SSE-LABEL: test3:
-; SSE: movsd
-
-; NOSSE2-LABEL: test3:
-; NOSSE2: fcmovb
-
-; NOSSE1-LABEL: test3:
-; NOSSE1: fcmovb
-
-; NOCMOV-LABEL: test3:
-; NOCMOV: fstp
-}
-
-define double @test4(i32 %a, i32 %b, double %x) nounwind {
- %cmp = icmp ule i32 %a, %b
- %sel = select i1 %cmp, double 99.0, double %x
- ret double %sel
-
-; SSE-LABEL: test4:
-; SSE: movsd
-
-; NOSSE2-LABEL: test4:
-; NOSSE2: fcmovbe
-
-; NOSSE1-LABEL: test4:
-; NOSSE1: fcmovbe
-
-; NOCMOV-LABEL: test4:
-; NOCMOV: fstp
-}
-
-define double @test5(i32 %a, i32 %b, double %x) nounwind {
- %cmp = icmp sgt i32 %a, %b
- %sel = select i1 %cmp, double 99.0, double %x
- ret double %sel
-
-; SSE-LABEL: test5:
-; SSE: movsd
-
-; NOSSE2-LABEL: test5:
-; NOSSE2: fstp
-
-; NOSSE1-LABEL: test5:
-; NOSSE1: fstp
-
-; NOCMOV-LABEL: test5:
-; NOCMOV: fstp
-}
-
-define double @test6(i32 %a, i32 %b, double %x) nounwind {
- %cmp = icmp sge i32 %a, %b
- %sel = select i1 %cmp, double 99.0, double %x
- ret double %sel
-
-; SSE-LABEL: test6:
-; SSE: movsd
-
-; NOSSE2-LABEL: test6:
-; NOSSE2: fstp
-
-; NOSSE1-LABEL: test6:
-; NOSSE1: fstp
-
-; NOCMOV-LABEL: test6:
-; NOCMOV: fstp
-}
-
-define double @test7(i32 %a, i32 %b, double %x) nounwind {
- %cmp = icmp slt i32 %a, %b
- %sel = select i1 %cmp, double 99.0, double %x
- ret double %sel
-
-; SSE-LABEL: test7:
-; SSE: movsd
-
-; NOSSE2-LABEL: test7:
-; NOSSE2: fstp
-
-; NOSSE1-LABEL: test7:
-; NOSSE1: fstp
-
-; NOCMOV-LABEL: test7:
-; NOCMOV: fstp
-}
-
-define double @test8(i32 %a, i32 %b, double %x) nounwind {
- %cmp = icmp sle i32 %a, %b
- %sel = select i1 %cmp, double 99.0, double %x
- ret double %sel
-
-; SSE-LABEL: test8:
-; SSE: movsd
-
-; NOSSE2-LABEL: test8:
-; NOSSE2: fstp
-
-; NOSSE1-LABEL: test8:
-; NOSSE1: fstp
-
-; NOCMOV-LABEL: test8:
-; NOCMOV: fstp
-}
-
-define float @test9(i32 %a, i32 %b, float %x) nounwind {
- %cmp = icmp ugt i32 %a, %b
- %sel = select i1 %cmp, float 99.0, float %x
- ret float %sel
-
-; SSE-LABEL: test9:
-; SSE: movss
-
-; NOSSE2-LABEL: test9:
-; NOSSE2: movss
-
-; NOSSE1-LABEL: test9:
-; NOSSE1: fcmovnbe
-
-; NOCMOV-LABEL: test9:
-; NOCMOV: fstp
-}
-
-define float @test10(i32 %a, i32 %b, float %x) nounwind {
- %cmp = icmp uge i32 %a, %b
- %sel = select i1 %cmp, float 99.0, float %x
- ret float %sel
-
-; SSE-LABEL: test10:
-; SSE: movss
-
-; NOSSE2-LABEL: test10:
-; NOSSE2: movss
-
-; NOSSE1-LABEL: test10:
-; NOSSE1: fcmovnb
-
-; NOCMOV-LABEL: test10:
-; NOCMOV: fstp
-}
-
-define float @test11(i32 %a, i32 %b, float %x) nounwind {
- %cmp = icmp ult i32 %a, %b
- %sel = select i1 %cmp, float 99.0, float %x
- ret float %sel
-
-; SSE-LABEL: test11:
-; SSE: movss
-
-; NOSSE2-LABEL: test11:
-; NOSSE2: movss
-
-; NOSSE1-LABEL: test11:
-; NOSSE1: fcmovb
-
-; NOCMOV-LABEL: test11:
-; NOCMOV: fstp
-}
-
-define float @test12(i32 %a, i32 %b, float %x) nounwind {
- %cmp = icmp ule i32 %a, %b
- %sel = select i1 %cmp, float 99.0, float %x
- ret float %sel
-
-; SSE-LABEL: test12:
-; SSE: movss
-
-; NOSSE2-LABEL: test12:
-; NOSSE2: movss
-
-; NOSSE1-LABEL: test12:
-; NOSSE1: fcmovbe
-
-; NOCMOV-LABEL: test12:
-; NOCMOV: fstp
-}
-
-define float @test13(i32 %a, i32 %b, float %x) nounwind {
- %cmp = icmp sgt i32 %a, %b
- %sel = select i1 %cmp, float 99.0, float %x
- ret float %sel
-
-; SSE-LABEL: test13:
-; SSE: movss
-
-; NOSSE2-LABEL: test13:
-; NOSSE2: movss
-
-; NOSSE1-LABEL: test13:
-; NOSSE1: fstp
-
-; NOCMOV-LABEL: test13:
-; NOCMOV: fstp
-}
-
-define float @test14(i32 %a, i32 %b, float %x) nounwind {
- %cmp = icmp sge i32 %a, %b
- %sel = select i1 %cmp, float 99.0, float %x
- ret float %sel
-
-; SSE-LABEL: test14:
-; SSE: movss
-
-; NOSSE2-LABEL: test14:
-; NOSSE2: movss
-
-; NOSSE1-LABEL: test14:
-; NOSSE1: fstp
-
-; NOCMOV-LABEL: test14:
-; NOCMOV: fstp
-}
-
-define float @test15(i32 %a, i32 %b, float %x) nounwind {
- %cmp = icmp slt i32 %a, %b
- %sel = select i1 %cmp, float 99.0, float %x
- ret float %sel
-
-; SSE-LABEL: test15:
-; SSE: movss
-
-; NOSSE2-LABEL: test15:
-; NOSSE2: movss
-
-; NOSSE1-LABEL: test15:
-; NOSSE1: fstp
-
-; NOCMOV-LABEL: test15:
-; NOCMOV: fstp
-}
-
-define float @test16(i32 %a, i32 %b, float %x) nounwind {
- %cmp = icmp sle i32 %a, %b
- %sel = select i1 %cmp, float 99.0, float %x
- ret float %sel
-
-; SSE-LABEL: test16:
-; SSE: movss
-
-; NOSSE2-LABEL: test16:
-; NOSSE2: movss
-
-; NOSSE1-LABEL: test16:
-; NOSSE1: fstp
-
-; NOCMOV-LABEL: test16:
-; NOCMOV: fstp
-}
-
-define x86_fp80 @test17(i32 %a, i32 %b, x86_fp80 %x) nounwind {
- %cmp = icmp ugt i32 %a, %b
- %sel = select i1 %cmp, x86_fp80 0xK4005C600000000000000, x86_fp80 %x
- ret x86_fp80 %sel
-
-; SSE-LABEL: test17:
-; SSE: fcmovnbe
-
-; NOSSE2-LABEL: test17:
-; NOSSE2: fcmovnbe
-
-; NOSSE1-LABEL: test17:
-; NOSSE1: fcmovnbe
-
-; NOCMOV-LABEL: test17:
-; NOCMOV: fstp
-}
-
-define x86_fp80 @test18(i32 %a, i32 %b, x86_fp80 %x) nounwind {
- %cmp = icmp uge i32 %a, %b
- %sel = select i1 %cmp, x86_fp80 0xK4005C600000000000000, x86_fp80 %x
- ret x86_fp80 %sel
-
-; SSE-LABEL: test18:
-; SSE: fcmovnb
-
-; NOSSE2-LABEL: test18:
-; NOSSE2: fcmovnb
-
-; NOSSE1-LABEL: test18:
-; NOSSE1: fcmovnb
-
-; NOCMOV-LABEL: test18:
-; NOCMOV: fstp
-}
-
-define x86_fp80 @test19(i32 %a, i32 %b, x86_fp80 %x) nounwind {
- %cmp = icmp ult i32 %a, %b
- %sel = select i1 %cmp, x86_fp80 0xK4005C600000000000000, x86_fp80 %x
- ret x86_fp80 %sel
-
-; SSE-LABEL: test19:
-; SSE: fcmovb
-
-; NOSSE2-LABEL: test19:
-; NOSSE2: fcmovb
-
-; NOSSE1-LABEL: test19:
-; NOSSE1: fcmovb
-
-; NOCMOV-LABEL: test19:
-; NOCMOV: fstp
-}
-
-define x86_fp80 @test20(i32 %a, i32 %b, x86_fp80 %x) nounwind {
- %cmp = icmp ule i32 %a, %b
- %sel = select i1 %cmp, x86_fp80 0xK4005C600000000000000, x86_fp80 %x
- ret x86_fp80 %sel
-
-; SSE-LABEL: test20:
-; SSE: fcmovbe
-
-; NOSSE2-LABEL: test20:
-; NOSSE2: fcmovbe
-
-; NOSSE1-LABEL: test20:
-; NOSSE1: fcmovbe
-
-; NOCMOV-LABEL: test20:
-; NOCMOV: fstp
-}
-
-define x86_fp80 @test21(i32 %a, i32 %b, x86_fp80 %x) nounwind {
- %cmp = icmp sgt i32 %a, %b
- %sel = select i1 %cmp, x86_fp80 0xK4005C600000000000000, x86_fp80 %x
- ret x86_fp80 %sel
-
-; We don't emit a branch for fp80, why?
-; SSE-LABEL: test21:
-; SSE: testb
-; SSE: fcmovne
-
-; NOSSE2-LABEL: test21:
-; NOSSE2: testb
-; NOSSE2: fcmovne
-
-; NOSSE1-LABEL: test21:
-; NOSSE1: testb
-; NOSSE1: fcmovne
-
-; NOCMOV-LABEL: test21:
-; NOCMOV: fstp
-}
-
-define x86_fp80 @test22(i32 %a, i32 %b, x86_fp80 %x) nounwind {
- %cmp = icmp sge i32 %a, %b
- %sel = select i1 %cmp, x86_fp80 0xK4005C600000000000000, x86_fp80 %x
- ret x86_fp80 %sel
-
-; SSE-LABEL: test22:
-; SSE: testb
-; SSE: fcmovne
-
-; NOSSE2-LABEL: test22:
-; NOSSE2: testb
-; NOSSE2: fcmovne
-
-; NOSSE1-LABEL: test22:
-; NOSSE1: testb
-; NOSSE1: fcmovne
-
-; NOCMOV-LABEL: test22:
-; NOCMOV: fstp
-}
-
-define x86_fp80 @test23(i32 %a, i32 %b, x86_fp80 %x) nounwind {
- %cmp = icmp slt i32 %a, %b
- %sel = select i1 %cmp, x86_fp80 0xK4005C600000000000000, x86_fp80 %x
- ret x86_fp80 %sel
-
-; SSE-LABEL: test23:
-; SSE: testb
-; SSE: fcmovne
-
-; NOSSE2-LABEL: test23:
-; NOSSE2: testb
-; NOSSE2: fcmovne
-
-; NOSSE1-LABEL: test23:
-; NOSSE1: testb
-; NOSSE1: fcmovne
-
-; NOCMOV-LABEL: test23:
-; NOCMOV: fstp
-}
-
-define x86_fp80 @test24(i32 %a, i32 %b, x86_fp80 %x) nounwind {
- %cmp = icmp sle i32 %a, %b
- %sel = select i1 %cmp, x86_fp80 0xK4005C600000000000000, x86_fp80 %x
- ret x86_fp80 %sel
-
-; SSE-LABEL: test24:
-; SSE: testb
-; SSE: fcmovne
-
-; NOSSE2-LABEL: test24:
-; NOSSE2: testb
-; NOSSE2: fcmovne
-
-; NOSSE1-LABEL: test24:
-; NOSSE1: testb
-; NOSSE1: fcmovne
-
-; NOCMOV-LABEL: test24:
-; NOCMOV: fstp
-}