mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-25 16:29:20 +00:00
Add a README entry noticed while investigating PR3216.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62558 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f5add58549
commit
8289b05c4c
@ -1651,3 +1651,25 @@ globalopt to remove the "stored only" global.
|
||||
|
||||
//===---------------------------------------------------------------------===//
|
||||
|
||||
This code:
|
||||
|
||||
define inreg i32 @foo(i8* inreg %p) nounwind {
|
||||
%tmp0 = load i8* %p
|
||||
%tmp1 = ashr i8 %tmp0, 5
|
||||
%tmp2 = sext i8 %tmp1 to i32
|
||||
ret i32 %tmp2
|
||||
}
|
||||
|
||||
could be dagcombine'd to a sign-extending load with a shift.
|
||||
For example, on x86 this currently gets this:
|
||||
|
||||
movb (%eax), %al
|
||||
sarb $5, %al
|
||||
movsbl %al, %eax
|
||||
|
||||
while it could get this:
|
||||
|
||||
movsbl (%eax), %eax
|
||||
sarl $5, %eax
|
||||
|
||||
//===---------------------------------------------------------------------===//
|
||||
|
Loading…
Reference in New Issue
Block a user