leonardchan added inline comments.

================
Comment at: lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1119
+  case ISD::SSAT:
+    // Target legalization checked here?
+    Action = TargetLowering::Expand;
----------------
ebevhan wrote:
> leonardchan wrote:
> > ebevhan wrote:
> > > leonardchan wrote:
> > > > @ebevhan Do you know if this is where checking if this intrinsic is 
> > > > supported by the target should be? 
> > > Yes, this would be it. For nodes like ssat and fixed-point ops, you could 
> > > ask a custom target hook, maybe `TLI.getScaledOperationAction(<opcode>, 
> > > <type>, <scale/sat_bw>)` to determine the legality of a given node.
> > > 
> > > When type-legalizing you also need to handle things for specific nodes as 
> > > well, since things behave differently when you legalize operands/results 
> > > on different nodes.
> > > 
> > > (Of course, this all depends on whether we do the legalization here or in 
> > > IR instead.)
> > Made the default action `Expand` for this in `TargetLoweringBase` and 
> > targets can override this themselves.
> > 
> > I think ssat may not need a custom hook since I don't think it requires 
> > anything extra like fixsmul if it has to be expanded. But I see what you 
> > mean now by how different nodes may require different steps for 
> > legalization.
> You don't need an extra hook to determine anything extra for expansion, but 
> you do need the hook to determine if it's legal in the first place. As I 
> mentioned in another comment, an i16 ssat with a saturating width of 8 might 
> be legal, but an i16 ssat with saturating width 12 might not. The former must 
> not be expanded, but the latter must.
Got it. Just to clarify though, legalizations regarding the scale would only 
apply for our mul/div intrinsics right? Operations like saturation and sat 
add/sub which don't care about the scale do not need this hook right, since it 
would also be useful for these operations to work on regular integers?


Repository:
  rL LLVM

https://reviews.llvm.org/D52286



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to