[PATCH] D143578: [VP] Add vp.powi and a pass for expanding vp.powi before DAG.

Yeting Kuo via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Feb 11 23:50:41 PST 2023


fakepaper56 marked an inline comment as done.
fakepaper56 added inline comments.


================
Comment at: llvm/lib/CodeGen/ExpandPowi.cpp:82
+      ExpTy, Intrinsic::vp_and, {Exp, ConstantInt::get(ExpTy, 1), True, EVL});
+  // FIXME: Use vp.icmp.
+  Value *IsOdd = Builder.CreateICmpNE(And1, ConstantInt::get(ExpTy, 0));
----------------
craig.topper wrote:
> fakepaper56 wrote:
> > fakepaper56 wrote:
> > > craig.topper wrote:
> > > > What's preventing using vp.icmp?
> > > It is only that I don't know how to construct vp.icmp/vp.fcmp instructions.
> > I don't understand how make predicate to a pointer of `Value`.
> Should be something like this code from IRBuilder with the assert removed.
> 
> ```
>   Value *getConstrainedFPPredicate(CmpInst::Predicate Predicate) {               
>     assert(CmpInst::isFPPredicate(Predicate) &&                                  
>            Predicate != CmpInst::FCMP_FALSE &&                                   
>            Predicate != CmpInst::FCMP_TRUE &&                                    
>            "Invalid constrained FP comparison predicate!");                      
>                                                                                  
>     StringRef PredicateStr = CmpInst::getPredicateName(Predicate);               
>     auto *PredicateMDS = MDString::get(Context, PredicateStr);                   
>                                                                                  
>     return MetadataAsValue::get(Context, PredicateMDS);                          
>   } 
> ```
Thank you for the recommendation.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D143578



More information about the llvm-commits mailing list