search for: gccbuiltin

Displaying 20 results from an estimated 71 matches for "gccbuiltin".

2010 Sep 12
2
[LLVMdev] GCCBuiltin and Intrinsic Mapping
I've run into an issue specifying intrinsics for AVX. Right now one can use GCCBuiltin to get automatic CBE (and other) support for emitting intrinsics as gcc builtins. It looks like this: def int_x86_sse3_hadd_pd : GCCBuiltin<"__builtin_ia32_haddpd">, Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, llvm_v2f64_ty], [IntrNoMem]&...
2010 Sep 12
0
[LLVMdev] GCCBuiltin and Intrinsic Mapping
On Sun, Sep 12, 2010 at 3:25 PM, David Greene <dag at cray.com> wrote: > I've run into an issue specifying intrinsics for AVX. > > Right now one can use GCCBuiltin to get automatic CBE (and other) > support for emitting intrinsics as gcc builtins.  It looks like > this: > >  def int_x86_sse3_hadd_pd : GCCBuiltin<"__builtin_ia32_haddpd">, >              Intrinsic<[llvm_v2f64_ty], [llvm_v2f64_ty, >                         ll...
2015 Sep 08
2
Strange types on x86 vcvtph2ps and vcvtps2ph intrinsics
...ike to understand why the types used with these intrinsics are done this way. For reference see ``include/llvm/IR/IntrinsicsX86.td``. Here are the intrinsics of interest. ``` let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_vcvtph2ps_128 : GCCBuiltin<"__builtin_ia32_vcvtph2ps">, Intrinsic<[llvm_v4f32_ty], [llvm_v8i16_ty], [IntrNoMem]>; def int_x86_vcvtph2ps_256 : GCCBuiltin<"__builtin_ia32_vcvtph2ps256">, Intrinsic<[llvm_v8f32_ty], [llvm_v8i16_ty], [IntrNoMem]>; def int...
2012 Feb 01
3
[LLVMdev] Issues with the llvm.stackrestore intrinsic
...d the stackrestore instrinsic are missing or how should this work? In Intrinsics.td it says // Note: we treat stacksave/stackrestore as writemem because we don't otherwise // model their dependencies on allocas. def int_stacksave : Intrinsic<[llvm_ptr_ty]>, GCCBuiltin<"__builtin_stack_save">; def int_stackrestore : Intrinsic<[], [llvm_ptr_ty]>, GCCBuiltin<"__builtin_stack_restore">; Does "GCCBuiltin" imply "writemem", or how does the comment and the code correspond? Second p...
2010 Sep 13
0
[LLVMdev] GCCBuiltin and Intrinsic Mapping
On Mon, Sep 13, 2010 at 8:27 AM, David A. Greene <dag at cray.com> wrote: > Eli Friedman <eli.friedman at gmail.com> writes: > >> int_x86_avx_vhadd_pd_xmm doesn't exist on trunk.  Why does it exist on >> your branch if the semantics are exactly equivalent to >> int_x86_sse3_hadd_pd?  The register allocator can handle converting to >> three-address form
2010 Sep 13
0
[LLVMdev] GCCBuiltin and Intrinsic Mapping
On Mon, Sep 13, 2010 at 8:27 AM, David A. Greene <dag at cray.com> wrote: > Eli Friedman <eli.friedman at gmail.com> writes: > >> int_x86_avx_vhadd_pd_xmm doesn't exist on trunk.  Why does it exist on >> your branch if the semantics are exactly equivalent to >> int_x86_sse3_hadd_pd?  The register allocator can handle converting to >> three-address form
2010 Sep 13
4
[LLVMdev] GCCBuiltin and Intrinsic Mapping
Eli Friedman <eli.friedman at gmail.com> writes: > int_x86_avx_vhadd_pd_xmm doesn't exist on trunk. Why does it exist on > your branch if the semantics are exactly equivalent to > int_x86_sse3_hadd_pd? The register allocator can handle converting to > three-address form if the target provides the appropriate hooks. Because in some cases users may want to explicitly use
2011 Apr 13
2
[LLVMdev] weird issue with target intrinsics
I'm wondering if anyone has seen this issue before and if so, how was it fixed? I have a file with multitude of target intrinsic in my code generator. It has worked great so far, but now I am running into this weird issue. If I add two new intrinsics such as: def int_AMDIL_dummy_intr 1: GCCBuiltin<"__amdil_dummy_intr1">, Intrinsic<[], [llvm_ptr_ty]>; def int_AMDIL_dummy_intr2 : GCCBuiltin<"__amdil_dummy_intr2">, Intrinsic<[], [llvm_ptr_ty]>; Once I do this, I get an error that a completely unrelated intrinsic can no...
2016 May 25
2
running intrinsics from C code
I've created an intrinsic from my target, but I can't figure out how I can run it from a C code. Most of the targets have a GCCBuiltin and it looks like it is the way to execute an intrinsic from C code. However in my case there is no actual GCC built in. Any help on this is really appreciated. -- Rail Shafigulin Software Engineer Esencia Technologies -------------- next part -------------- An HTML attachment was scrubbed... UR...
2011 May 26
0
[LLVMdev] x86 SSE4.2 CRC32 intrinsics renamed
...(original) > +++ llvm/trunk/include/llvm/IntrinsicsX86.td Thu May 26 18:13:19 2011 > @@ -948,19 +948,19 @@ > // Miscellaneous > // CRC Instruction > let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". > - def int_x86_sse42_crc32_8 : GCCBuiltin<"__builtin_ia32_crc32qi">, > + def int_x86_sse42_crc32_32_8 : GCCBuiltin<"__builtin_ia32_crc32qi">, > Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i8_ty], > [IntrNoMem]>; > - def int_x86_sse42_crc32_16 :...
2016 May 25
0
running intrinsics from C code
GCCBuiltin just gives it a name for clang to lookup. Generally they match up with builtins that gcc also implements, but that's not a requirement. If you add a builtin with the same name to the builtin file in clang's include/clang/Basic/Builtins*.def then they will find each other. You can also jus...
2018 Sep 06
2
Adding an trinsics in x86
...wbie at llvm. So the question may be fundamental but difficult to me. I want to add an trinsics in x86 and make the following changes.I want that max_qb can find the max of two Integers and return it. In src/include/llvm/IR/Intrinsics.td : let TargetPrefix = "x86" in { def int_x86_max_qb: GCCBuiltin<"__builtin_x86_max_qb">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [IntrNoMem]>; } In src//tools/clang/include/clang/Basic/BuiltinsX86.def TARGET_BUILTIN(__builtin_x86_max_qb, "V2iV2iV2i", "ncV:64:", "") //I don't know the meaning o...
2007 Aug 01
2
[LLVMdev] Adding custom operation intrinsic for ASIP architectures.
...mporal store. > > To answer David's question, we already have direct support for this in > tblgen, for example, include/llvm/IntrinsicsX86.td contains: > > let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". > def int_x86_sse_movnt_ps : GCCBuiltin<"__builtin_ia32_movntps">, > Intrinsic<[llvm_void_ty, llvm_ptr_ty, > llvm_v4f32_ty], [IntrWriteMem]>; > } > > and lib/Target/X86/X86InstrSSE.td contains: > > def MOVNTPSmr : PSI<0x2B, MRMDestMem, (outs), (ins i128mem:$dst, > VR128:$src), > "...
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 add SDnode. It's succeed when LLVM compilates.But there is an error “use of unknown built...
2007 Aug 01
0
[LLVMdev] Adding custom operation intrinsic for ASIP architectures.
...s function does a nontemporal store. To answer David's question, we already have direct support for this in tblgen, for example, include/llvm/IntrinsicsX86.td contains: let TargetPrefix = "x86" in { // All intrinsics start with "llvm.x86.". def int_x86_sse_movnt_ps : GCCBuiltin<"__builtin_ia32_movntps">, Intrinsic<[llvm_void_ty, llvm_ptr_ty, llvm_v4f32_ty], [IntrWriteMem]>; } and lib/Target/X86/X86InstrSSE.td contains: def MOVNTPSmr : PSI<0x2B, MRMDestMem, (outs), (ins i128mem:$dst, VR128:$src),...
2014 Jul 23
2
[LLVMdev] LowerINTRINSIC_W_CHAIN in X86
Yeah. I agree that "Chain operand is needed if the intrinsic is reading / writing memory.”, Just don’t know where and how to set it up. like intrinsic “int_x86_xtest: “ def int_x86_xtest : GCCBuiltin<"__builtin_ia32_xtest">, Intrinsic<[llvm_i32_ty], [], []>; “ "def X86xtest: SDNode<"X86ISD::XTEST", SDTypeProfile<1, 0, [SDTCisVT<0, i32>]>, [SDNPHasChain, SDNPSideEffect]>; “ let Defs = [EFLAGS] in def XTES...
2018 Sep 24
4
Writing simple intrinsic in clang
I want to write a simple backend-specific instrinsic that will just call an instruction. How should I do that? -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180924/7faeeb3d/attachment.html>
2007 Jul 31
3
[LLVMdev] Adding custom operation intrinsic for ASIP architectures.
Hi, 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). Basically our custom operation are like calls, with operand name and multiple
2012 Feb 03
0
[LLVMdev] Issues with the llvm.stackrestore intrinsic - now LoopRotation handling of alloca
...ng or how should this work? > > In Intrinsics.td it says > > // Note: we treat stacksave/stackrestore as writemem because we don't > otherwise > // model their dependencies on allocas. > def int_stacksave : Intrinsic<[llvm_ptr_ty]>, > GCCBuiltin<"__builtin_stack_save">; > def int_stackrestore : Intrinsic<[], [llvm_ptr_ty]>, > GCCBuiltin<"__builtin_stack_restore">; > > Does "GCCBuiltin" imply "writemem", or how does the comment and the code &gt...
2018 Nov 07
2
how to add a instruction
Hi,every one. I' in trouble again. I want add a new intrinsic mapping a new instruction. I add the int_x86_max_qb as fllowing: def int_x86_max_qb: GCCBuiltin<"__builtin_x86_max_qb">, Intrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty], [Commutative]>; BUILTIN(__builtin_x86_max_qb, "iii", "") I define the intrinsic as Pseudo instruction,it succeed. But when mapping a new instruction.I don't know how to...