aboutsummaryrefslogtreecommitdiffstats
path: root/test/CodeGen/X86/xor-icmp.ll
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2010-02-24 01:42:31 +0000
committerEvan Cheng <evan.cheng@apple.com>2010-02-24 01:42:31 +0000
commit97e6b8390b405f9e7dd994f111a5950fca2962d2 (patch)
tree9f28b4394a19d69d306eebef354fe321ffd50c2c /test/CodeGen/X86/xor-icmp.ll
parent9d2ed8e632b71914b2a668932f4f49b87c3ca0b1 (diff)
downloadexternal_llvm-97e6b8390b405f9e7dd994f111a5950fca2962d2.zip
external_llvm-97e6b8390b405f9e7dd994f111a5950fca2962d2.tar.gz
external_llvm-97e6b8390b405f9e7dd994f111a5950fca2962d2.tar.bz2
Re-apply 96540 and 96556 with fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97011 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/X86/xor-icmp.ll')
-rw-r--r--test/CodeGen/X86/xor-icmp.ll31
1 files changed, 31 insertions, 0 deletions
diff --git a/test/CodeGen/X86/xor-icmp.ll b/test/CodeGen/X86/xor-icmp.ll
index a6bdb13..2d75c5d 100644
--- a/test/CodeGen/X86/xor-icmp.ll
+++ b/test/CodeGen/X86/xor-icmp.ll
@@ -1,5 +1,6 @@
; RUN: llc < %s -march=x86 | FileCheck %s -check-prefix=X32
; RUN: llc < %s -march=x86-64 | FileCheck %s -check-prefix=X64
+; rdar://7367229
define i32 @t(i32 %a, i32 %b) nounwind ssp {
entry:
@@ -34,3 +35,33 @@ bb1: ; preds = %entry
declare i32 @foo(...)
declare i32 @bar(...)
+
+define i32 @t2(i32 %x, i32 %y) nounwind ssp {
+; X32: t2:
+; X32: cmpl
+; X32: sete
+; X32: cmpl
+; X32: sete
+; X32-NOT: xor
+; X32: je
+
+; X64: t2:
+; X64: testl
+; X64: sete
+; X64: testl
+; X64: sete
+; X64-NOT: xor
+; X64: je
+entry:
+ %0 = icmp eq i32 %x, 0 ; <i1> [#uses=1]
+ %1 = icmp eq i32 %y, 0 ; <i1> [#uses=1]
+ %2 = xor i1 %1, %0 ; <i1> [#uses=1]
+ br i1 %2, label %bb, label %return
+
+bb: ; preds = %entry
+ %3 = tail call i32 (...)* @foo() nounwind ; <i32> [#uses=0]
+ ret i32 undef
+
+return: ; preds = %entry
+ ret i32 undef
+}