mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-29 07:53:33 +00:00
c4fa386471
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30070 91177308-0d34-0410-b5e6-96231b3b80d8 |
||
---|---|---|
.. | ||
.cvsignore | ||
Alpha.h | ||
Alpha.td | ||
AlphaAsmPrinter.cpp | ||
AlphaCodeEmitter.cpp | ||
AlphaInstrFormats.td | ||
AlphaInstrInfo.cpp | ||
AlphaInstrInfo.h | ||
AlphaInstrInfo.td | ||
AlphaISelDAGToDAG.cpp | ||
AlphaISelLowering.cpp | ||
AlphaISelLowering.h | ||
AlphaJITInfo.cpp | ||
AlphaJITInfo.h | ||
AlphaRegisterInfo.cpp | ||
AlphaRegisterInfo.h | ||
AlphaRegisterInfo.td | ||
AlphaRelocations.h | ||
AlphaSchedule.td | ||
AlphaSubtarget.cpp | ||
AlphaSubtarget.h | ||
AlphaTargetMachine.cpp | ||
AlphaTargetMachine.h | ||
Makefile | ||
README.txt |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Fix Ordered/Unordered FP stuff %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% improve bytezap opertunities ulong %foo(ulong %y) { entry: %tmp = and ulong %y, 65535 %tmp2 = shr ulong %tmp, ubyte 3 ret ulong %tmp2 } compiles to a 3 instruction sequence without instcombine zapnot $16,3,$0 srl $0,3,$0 ret $31,($26),1 After instcombine you get ulong %foo(ulong %y) { entry: %tmp = shr ulong %y, ubyte 3 ; <ulong> [#uses=1] %tmp2 = and ulong %tmp, 8191 ; <ulong> [#uses=1] ret ulong %tmp2 } which compiles to lda $0,8191($31) srl $16,3,$1 and $1,$0,$0 ret $31,($26),1