[PATCH 2/5] R600: Use SIGN_EXTEND_INREG for SEXT loads

Jan Vesely jan.vesely at rutgers.edu
Tue May 26 13:41:16 PDT 2015


On Mon, 2015-05-25 at 18:58 -0700, Matt Arsenault wrote:
> > On May 25, 2015, at 5:08 PM, Jan Vesely <jan.vesely at rutgers.edu> wrote:
> > 
> > ---
> > 
> > Probably just a missed optimization somewhere, nevertheless SIGN_EXTEND
> > is more intuitive in this situation
> > 
> > lib/Target/R600/R600ISelLowering.cpp |   9 +--
> > test/CodeGen/R600/load.ll            | 109 +++++++++++++----------------------
> > 2 files changed, 42 insertions(+), 76 deletions(-)
> 
> LGTM. I’m surprised this wasn’t folded into this already requiring test changes

thanks, I pushed the first two. It was a bit surprising for me too
because whenever I test:

  %1 = load i32, i32 addrspace(X)* %in
  %2 = shl i32 %1, 24
  %3 = ashr i32 %2, 24
  store i32 %3, i32 addrspace(1)* %out
  ret void

For X = 0,1,2,3

I see BFE_INT.
Could it be that the transformation for some reason is run before the
load gets lowered Is it worth investigating?

jan

-- 
Jan Vesely <jan.vesely at rutgers.edu>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150526/4cce5869/attachment.sig>


More information about the llvm-commits mailing list