search for: ischeaptospeculatectlz

Displaying 5 results from an estimated 5 matches for "ischeaptospeculatectlz".

2018 Nov 27
2
Vectorizer has trouble with vpmovmskb and store
...tonight or tomorrow. > > diff --git a/lib/Target/X86/X86ISelLowering.cpp > b/lib/Target/X86/X86ISelLowering.cpp > index e31f2a6..d79c0be 100644 > --- a/lib/Target/X86/X86ISelLowering.cpp > +++ b/lib/Target/X86/X86ISelLowering.cpp > @@ -4837,6 +4837,11 @@ bool X86TargetLowering::isCheapToSpeculateCtlz() > const { > > bool X86TargetLowering::isLoadBitCastBeneficial(EVT LoadVT, > EVT BitcastVT) const { > + if (!LoadVT.isVector() && BitcastVT.isVector() && > + BitcastVT.getVectorElementType() == MVT::i1 &&...
2017 Jan 24
3
Early legalization pass ? Doing early legalization in an existing pass ?
...early seems like something that is more likely to prevent optimizations than it is to encourage them. But I guess I don't follow why things like TTI, TII and TLI queries don't suffice for this. CodeGenPrepare will break this sequence up. I would imagine that if the target returns false for isCheapToSpeculateCtlz() and false for canInsertSelect(), the code would look the way you'd like it to. But as I said, I'm mostly speculating here and I might be very wrong. On Mon, Jan 23, 2017 at 5:02 PM, via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > > On Jan 23, 2017, at 4:06 AM, Amaur...
2018 Nov 26
2
Vectorizer has trouble with vpmovmskb and store
Hi all, I've run into a case where the optimizer seems to be having trouble doing the "obvious" thing. Consider this code: ``` define i16 @foo(<8 x i16>* dereferenceable(16) %egress, <16 x i8> %a0) { %a1 = icmp slt <16 x i8> %a0, zeroinitializer %a2 = bitcast <16 x i1> %a1 to i16 %astore = getelementptr inbounds <8 x i16>, <8 x i16>*
2014 Dec 29
3
[LLVMdev] LLVM Weekly - #52, Dec 29th 2014
...ng. [r224742](http://reviews.llvm.org/rL224742), [r224798](http://reviews.llvm.org/rL224798). * The masked load and store intrinsics have been documented. [r224832](http://reviews.llvm.org/rL224832). * CodeGenPrepare learned to speculate calls to llvm.cttz/ctlz (count trailing/leading zeroes) if `isCheapToSpeculateCtlz/isCheapToSpeculatCttz` in TargetLowering return true. [r224899](http://reviews.llvm.org/rL224899). ## Clang commits * The Clang internals manual has been extended with stub sections on Parse, Sema, and CodeGen. [r224894](http://reviews.llvm.org/rL224894). ## Other project commits * The libcxx...
2017 Jan 23
2
Early legalization pass ? Doing early legalization in an existing pass ?
Hi all, Some non trivial legalization of operations which aren't supported by the backend would benefit from having the optimizer pass on them. I noticed some example trying to optimize various pieces of code over the past weeks. One offender is the cttz/ctlz intrinsic when defined on 0. On X86, BSR and NSF are undefined on 0, and only recent CPU have the LZCNT and TZCNT instructions that