[PATCH] D77590: [ARM] MVE saturating truncates

Sjoerd Meijer via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 8 05:55:51 PDT 2020


SjoerdMeijer added inline comments.


================
Comment at: llvm/lib/Target/ARM/ARMISelLowering.cpp:14796
+
+    // Create a VQMOVNB, Signed extended in to the top half. That extend will
+    // hopefully be removed if only the bottom bits are demanded (though a
----------------
dmgreen wrote:
> SjoerdMeijer wrote:
> > sorry, just double checking again, should this be: 
> > 
> >   Signed extended in to the bottom half. 
> We are producing a:
> v8i16 %X = VQMOVNB v8i16 undef, v4i32 %in
> v4i32 %Y = bitcast %X to v4i32
> v4i32 %res = SIGN_EXTEND_INREG %Y, v4i16
> 
> So the VQMOVNB will set the "bottom" lanes (of the v8i16), but leave the top lanes undef. The SIGN_EXTEND_INREG will extend the bottom half into the top half of the v4i32, maing sure it's the same value as before with the min/max pair. Hopefully the SIGN_EXTEND_INREG will be demand-bitted away in a lot of cases, leaving the VQMOVNB.
> 
> I've tried to write that into the comment.
Ah, yep, sorry, got it. 


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D77590/new/

https://reviews.llvm.org/D77590





More information about the llvm-commits mailing list