From a05ec61684fa56f4028761d9a0beddc70bee473e Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 30 Jun 2009 04:20:46 +0000 Subject: [PATCH] add a note git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74508 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/X86/README.txt | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/lib/Target/X86/README.txt b/lib/Target/X86/README.txt index 4464878ce21..711f1d2345f 100644 --- a/lib/Target/X86/README.txt +++ b/lib/Target/X86/README.txt @@ -1932,3 +1932,23 @@ Replacing an icmp+select with a shift should always be considered profitable in instcombine. //===---------------------------------------------------------------------===// + +It looks like we don't have patterns (or they aren't matching) for adc with +immediate: + +define i64 @f1(i64 %a) nounwind { + %tmp = sub i64 %a, 734439407618 + ret i64 %tmp +} +$ llvm-as < t.ll | llc -march=x86 + +_f1: + movl 4(%esp), %eax + addl $4294967294, %eax + movl $4294967124, %edx + adcl 8(%esp), %edx + ret + +There is no need to clobber %edx there. + +//===---------------------------------------------------------------------===//