aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGen/X86/use-add-flags.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGen/X86/use-add-flags.ll')
-rw-r--r--test/CodeGen/X86/use-add-flags.ll57
1 files changed, 0 insertions, 57 deletions
diff --git a/test/CodeGen/X86/use-add-flags.ll b/test/CodeGen/X86/use-add-flags.ll
deleted file mode 100644
index da0002cc2520..000000000000
--- a/test/CodeGen/X86/use-add-flags.ll
+++ /dev/null
@@ -1,57 +0,0 @@
-; RUN: llc < %s -mtriple=x86_64-linux | FileCheck %s
-; RUN: llc < %s -mtriple=x86_64-win32 | FileCheck %s
-
-; Reuse the flags value from the add instructions instead of emitting separate
-; testl instructions.
-
-; Use the flags on the add.
-
-; CHECK-LABEL: test1:
-; CHECK: addl
-; CHECK-NOT: test
-; CHECK: cmovnsl
-; CHECK: ret
-
-define i32 @test1(i32* %x, i32 %y, i32 %a, i32 %b) nounwind {
- %tmp2 = load i32, i32* %x, align 4 ; <i32> [#uses=1]
- %tmp4 = add i32 %tmp2, %y ; <i32> [#uses=1]
- %tmp5 = icmp slt i32 %tmp4, 0 ; <i1> [#uses=1]
- %tmp.0 = select i1 %tmp5, i32 %a, i32 %b ; <i32> [#uses=1]
- ret i32 %tmp.0
-}
-
-declare void @foo(i32)
-
-; Don't use the flags result of the and here, since the and has no
-; other use. A simple test is better.
-
-; CHECK-LABEL: test2:
-; CHECK: testb $16, {{%dil|%cl}}
-
-define void @test2(i32 %x) nounwind {
- %y = and i32 %x, 16
- %t = icmp eq i32 %y, 0
- br i1 %t, label %true, label %false
-true:
- call void @foo(i32 %x)
- ret void
-false:
- ret void
-}
-
-; Do use the flags result of the and here, since the and has another use.
-
-; CHECK-LABEL: test3:
-; CHECK: andl $16, %e
-; CHECK-NEXT: jne
-
-define void @test3(i32 %x) nounwind {
- %y = and i32 %x, 16
- %t = icmp eq i32 %y, 0
- br i1 %t, label %true, label %false
-true:
- call void @foo(i32 %y)
- ret void
-false:
- ret void
-}