Displaying 20 results from an estimated 20000 matches similar to: "[LLVMdev] RFC: AVX Intrinsics"
2012 May 23
1
[LLVMdev] tblgen for generation of Haskell bindings to LLVM intrinsics
I want to generate Haskell bindings to LLVM intrinsics. In a first attempt I
wrote a little parser that reads IntrinsicsX86.td and outputs a Haskell module.
E.g. the definition
def int_x86_avx_max_ps_256 : GCCBuiltin<"__builtin_ia32_maxps256">,
Intrinsic<[llvm_v8f32_ty], [llvm_v8f32_ty,
llvm_v8f32_ty], [IntrNoMem]>;
is turned into
2009 May 01
0
[LLVMdev] RFC: AVX Pattern Specification [LONG]
On Apr 30, 2009, at 3:59 PM, David Greene wrote:
> Here's the big RFC.
>
> A I've gone through and designed patterns for AVX, I quickly
> realized that the
> existing SSE pattern specification, while functional, is less than
> ideal in
> terms of maintenance. In particular, a number of nearly-identical
> patterns
> are specified all over for
2009 Nov 02
2
[LLVMdev] Moving AVX Upstream
Hey everyone,
I'm at the point with our local AVX tree that I'm ready to move some
stuff upstream. We've got most of the basic stuff implemented. The
more esoteric stuff still has to be done.
Because the more esoteric stuff might require some extensive changes to
the existing AVX infrastructure, I suspect there might be quite a bit
of church until we get things stabilized.
Due to
2009 Dec 17
1
[LLVMdev] Merging AVX
I'd like to start moving some of our AVX work into trunk.
We've got quite a bit of it implemented already. I wanted to make sure
we got something that would work and remain relatively stable.
Here's how I'd like to do this. First, I have some more TableGen fixes
and enhancements that are prereqs for AVX templates. I'd like to get
those in first. Then there are a number of
2020 Sep 29
3
TableGen processing of target-specific intrinsics
Each of the main TableGen files for the supported targets includes
include "llvm/Target/Target.td"
In turn, Target.td includes
include "llvm/IR/Intrinsics.td"
The final lines of Instrinsics.td are
include "llvm/IR/IntrinsicsPowerPC.td"
include "llvm/IR/IntrinsicsX86.td"
include "llvm/IR/IntrinsicsARM.td"
include
2015 Dec 31
2
Can't find x86 AVX VPANDNPS intrinsic
Hello all -
I'm trying to find the llvm intrinsic name for the VPANDNPS AVX instruction
to be able to call the intrinsic directly (usually something like
x86_avx2_xxx). Usually google or a search through the .td files or source
turns something up, but I'm stumped with this one. Any help would be much
appreciated.
Thanks -
Matt
-------------- next part --------------
An HTML attachment
2009 Apr 30
6
[LLVMdev] RFC: AVX Pattern Specification [LONG]
Here's the big RFC.
A I've gone through and designed patterns for AVX, I quickly realized that the
existing SSE pattern specification, while functional, is less than ideal in
terms of maintenance. In particular, a number of nearly-identical patterns
are specified all over for nearly-identical instructions. For example:
let Constraints = "$src1 = $dst" in {
multiclass
2009 May 01
4
[LLVMdev] RFC: AVX Pattern Specification [LONG]
On Friday 01 May 2009 13:46, Chris Lattner wrote:
> Right, a lot of these problems can be solved by some nice refactoring
> stuff. I'm also hoping that some of the complexity in defining
> shuffle matching code can be helped by making the definition of the
> shuffle patterns more declarative within the td file. It would be
> really nice to say that "this shuffle does a
2015 Dec 31
2
Can't find x86 AVX VPANDNPS intrinsic
I don't think there is an intrinsic. This is supported by native IR by
looking for something like (and %a, (xor %b, -1))
On Thu, Dec 31, 2015 at 1:25 PM, Sanjay Patel via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> Hi Matt -
> I think this should either be VPANDN (integer) or VANDNPS (float); there
> is no "VPANDNPS".
>
> On Thu, Dec 31, 2015 at 1:32 PM,
2009 Nov 02
0
[LLVMdev] Moving AVX Upstream
On Nov 2, 2009, at 11:48 AM, David Greene wrote:
> Hey everyone,
>
> I'm at the point with our local AVX tree that I'm ready to move some
> stuff upstream. We've got most of the basic stuff implemented. The
> more esoteric stuff still has to be done.
>
> Because the more esoteric stuff might require some extensive changes
> to
> the existing AVX
2009 Mar 25
1
[LLVMdev] AVX - Work is Progressing
Hi all,
We've been doing some work to add AVX support to the x86 backend. We'd
like to contribute this to the community. We wanted to let everyone know in
advance in case there are others working on this as well. If so, let's
collaborate so we don't step on each other.
Currently we have the basic AVX machine description support, some TableGen
enhancements which I've
2016 Aug 10
2
crash JIT with AVX intrinsics
Hi all,
I have some old code using the JIT via the LLVM-3.0-C API. I want to
upgrade to newer versions of LLVM. As a simple example I wrote a C program
that creates the following function and calls it:
; ModuleID = 'round-avx.bc'
target triple = "x86_64-pc-linux-gnu"
define void @round(<8 x float>*) {
_L1:
%1 = load <8 x float>* %0
%2 = call <8 x
2018 Sep 12
2
There is an error “use of unknown builtin”
Hello,everyone.
I am very embarrassed to ask such a simple question.
I want to add an intrinsics(named max_qb) in x86 backend.
In include/llvm/IR/IntrinsicsX86.td, I add a intrinsics (GCCBuiltin).
In clang( BuiltinsX86.def ), I add a BUILTIN.
And in x86 backend , I change :
the X86InstrInfo.td to add def X86max_qb_flag ,
X86InstrArithmetic.td to add define of instruction ,
X86ISelLowering.cpp to
2010 Jan 22
1
[LLVMdev] AVX Reorg Patch
This is the first in a series of patches to move around some
X86 .td file contents in preparation for starting to add
AVX patterns. This is stuff that will be shared by SSE, MMX
and AVX patterns. Eventually, they will all converge under
one framework but in the meantime we need to do some code
sharing so I want to move the common stuff into a single file.
Assuming this patch looks ok, I'll
2011 Mar 10
0
[LLVMdev] Vector select/compare support in LLVM
Hey,
I am currently forced to create the BLENDVPS intrinsic as an external
call (via Intrinsic::x86_sse41_blendvps) which has the following
signature (from IntrinsicsX86.td):
def int_x86_sse41_blendvps :
GCCBuiltin<"__builtin_ia32_blendvps">,
Intrinsic<[llvm_v4f32_ty],[llvm_v4f32_ty, llvm_v4f32_ty,
llvm_v4f32_ty],[IntrNoMem]>
Thus, it expects the mask (first operand if
2009 May 01
0
[LLVMdev] RFC: AVX Pattern Specification [LONG]
On Apr 30, 2009, at 3:59 PM, David Greene wrote:
> Here's the big RFC.
>
>
> Of course we would not transition away from X86InstrSSE.td until
> X86InstrSIMD.td is proven to cover all current uses of SSE correctly.
>
> The pros of the scheme:
>
> * Unify all "important" x86 SIMD instructions into one framework and
> provide
> consistency
While
2009 Nov 02
2
[LLVMdev] Moving AVX Upstream
On Monday 02 November 2009 13:55, Tanya Lattner wrote:
> You should do incremental development on trunk. If you create a
> branch, no one is going to look at those changes.
Ok. but I want to be very clear what that means. It means for each AVX
instruction I rip out ALL of the existing SSE support for it. So when
ADD gets implemented, ADD goes away from X86InstSSE.td.
As things progress,
2007 Aug 01
0
[LLVMdev] Adding custom operation intrinsic for ASIP architectures.
On Tue, 31 Jul 2007, [ISO-8859-1] Mikael Lepist� wrote:
> I was talking with aKor in #llvm how we could implement custom operation
> support for our ASIP architecture. We came into solution that the best
> way would be to write new custom operation intrinsic and optimization
> pass for raising certain type of function calls to those intrinsics
> (similar to raising mallocs).
>
2018 Feb 01
1
Intrinsic pattern matching
Hello,
I have a problem with pattern matching on intrinsics.
I have following code in IntrinsicsX86.td:
```
let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.".
def int_x86_mpx_bndmk:
Intrinsic<[llvm_x86bnd_ty], [llvm_ptr_ty, llvm_i64_ty], []>;
}
```
And following instruction that is generated when @llvm.x86.mpx.bndmk is
used in code:
2009 Dec 17
3
[LLVMdev] AVX Shuffles & PatLeaf Help Needed
On Thursday 17 December 2009 17:16, Nate Begeman wrote:
> David, this is probably the wrong approach, based on the accreted awfulness
> of the X86 shuffle lowering code,
Ha! I have no issue believing this statement. :)
> The correct approach is probably a rewrite based around what
> AltiVec does: Canonicalize to byte ops, and write all the patterns once
> rather than having to