[ndk][backport] Workaround llvm.cttz.v2i64() problem.
Under some situation, the LLVM auto-vectorization will generate
llvm.cttz.v2i64() which does not correspond to any ARM instruction
and result in unmatched selection DAG. This backported patch
workaround the problem by refining the cost model to avoid this
intrinsics in this case.
Patch originally by James Molloy - james molloy arm com
[ARM] Teach the cost model that cross-class copies are costly.
Cross-class copies being expensive is actually a trait of the
microarchitecture, but as I haven't yet seen an example of a
microarchitecture where they're cheap it seems best to just enable this
by default, covering the non-mcpu build case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@217674
91177308-0d34-0410-b5e6-96231b3b80d8
Loading
Please sign in to comment